简述如何计算二叉树第 k k 层节点个数 ?
参考答案:
要计算二叉树第 k 层的节点个数,可以采用层序遍历(BFS,Breadth-First Search)的方法。这种方法会从根节点开始,逐层访问二叉树的节点。
以下是一个基本的步骤说明:
-
首先,创建一个队列,并将根节点加入队列。
-
初始化一个计数器 count 为 0,用来记录当前层的节点个数。
-
初始化一个变量 level 为 1,表示当前的层级。
-
当队列不为空时,执行以下步骤:
- 遍历队列中的所有节点,将它们的子节点(如果存在)加入队列,并将 count 加 1。
- 如果 level 等于 k,那么返回 count。
- 否则,清空队列,并将 level 加 1,继续下一层的遍历。
-
如果队列为空,且 level 不等于 k,那么说明二叉树的层数少于 k,返回 0。
这种方法的时间复杂度是 O(n),其中 n 是二叉树中的节点个数,因为每个节点都会被访问一次。空间复杂度是 O(m),其中 m 是二叉树中最宽一层的节点个数,因为在最坏的情况下,队列中需要存储这一层的所有节点。