跳到主要内容

简述如何计算二叉树第 k k 层节点个数 ?

参考答案:

要计算二叉树第 k 层的节点个数,可以采用层序遍历(BFS,Breadth-First Search)的方法。这种方法会从根节点开始,逐层访问二叉树的节点。

以下是一个基本的步骤说明:

  1. 首先,创建一个队列,并将根节点加入队列。

  2. 初始化一个计数器 count 为 0,用来记录当前层的节点个数。

  3. 初始化一个变量 level 为 1,表示当前的层级。

  4. 当队列不为空时,执行以下步骤:

    • 遍历队列中的所有节点,将它们的子节点(如果存在)加入队列,并将 count 加 1。
    • 如果 level 等于 k,那么返回 count。
    • 否则,清空队列,并将 level 加 1,继续下一层的遍历。
  5. 如果队列为空,且 level 不等于 k,那么说明二叉树的层数少于 k,返回 0。

这种方法的时间复杂度是 O(n),其中 n 是二叉树中的节点个数,因为每个节点都会被访问一次。空间复杂度是 O(m),其中 m 是二叉树中最宽一层的节点个数,因为在最坏的情况下,队列中需要存储这一层的所有节点。