跳到内容
← 全部问题

为什么每层的节点数是 2 的幂?

每层的节点数呈 2 的幂增长,因为每次递归调用正好分裂成两个子调用。从根节点(第 1 层,202^0)的 1 个节点开始,第 2 层有 2 个节点(212^1),第 3 层有 4 个节点(222^2),第 4 层有 8 个节点(232^3)。

适用条件

  • 递推关系为 f(n)=f(n−1)+f(n−2)f(n) = f(n-1) + f(n-2),生成一棵二叉树。
  • 层级从 1 开始编号。
  • 为了理论估算,将树视为满二叉树进行计数。

理解与推导

  1. 将根节点识别为第 1 层,包含 1 个节点(202^0)。
  2. 观察到每个节点在下一层分裂成两个子节点。
  3. 计算第 2 层的节点数为 2(212^1),第 3 层为 4(222^2),第 4 层为 8(232^3)。
  4. 将该规律推广,得出第 kk 层对应 2k−12^{k-1} 个节点的结论。

例子

讲师从上到下逐层指点:第二层有 2 个节点,第三层有 4 个节点,第四层有 8 个节点,并依次在树旁写下 202^0、212^1、222^2 和 232^3。数学推理很直接:每次递归调用分裂成两个子调用,所以每层的节点数呈 2 的幂增长。

容易误解的地方

  • 假设每层的节点数在整个树中是恒定的。
  • 混淆层级索引 kk 与指数,忘记第 1 层对应的是 202^0。

观看对应讲解

继续追问

答案依据视频资料生成并经过独立核验。若有疑问,请核对原视频或联系原作者。