首页/数据结构/04-tree/二叉树的性质 🔗 在 Obsidian 中打开
数据结构 · 树与二叉树

二叉树的性质

难度 ★★★重要度 ★★★★★ 考查频率 高 二叉树满二叉树完全二叉树
速查
$n_0 = n_2 + 1$(叶子比度为 2 的结点多 1);② 第 $i$ 层最多 $2^{i-1}$ 个;③ 深度 $k$ 最多 $2^k-1$ 个;④ 完全二叉树编号 父 $\lfloor i/2\rfloor$、左 $2i$、右 $2i+1$;⑤ $n$ 个结点深度至少 $\lfloor\log_2 n\rfloor+1$。

五条性质

性质 1:$n_0 = n_2 + 1$

在任意二叉树中,度为 0 的叶子结点数 $n_0$ 等于 度为 2 的结点数 $n_2$ 加 1。

性质 2:第 $i$ 层结点数

第 $i$ 层($i\ge 1$)最多有 $2^{i-1}$ 个结点。

性质 3:深度为 $k$ 的结点数

深度为 $k$ 的二叉树最多有 $2^k - 1$ 个结点(即满二叉树)。

性质 4:完全二叉树的编号

按层序从 1 编号,结点 $i$ 的:父为 $\lfloor i/2\rfloor$,左孩子 $2i$,右孩子 $2i+1$(下标不越界时)。

性质 5:深度下界

具有 $n$ 个结点的二叉树,其深度 $k \ge \lfloor\log_2 n\rfloor + 1$;完全二叉树深度恰为 $\lfloor\log_2 n\rfloor + 1$。

手算示例

  • 101 个结点的完全二叉树:叶子数 $n_0 = \lceil 101/2\rceil = 51$。
  • 200 个结点:叶子数 $n_0 = \lceil 200/2\rceil = 100$。
  • 100 个结点:叶子数 $n_0 = \lceil 100/2\rceil = 50$;$n_1=1$(偶数个结点),则 $n_2 = n_0 - 1 = 49$。
技巧完全二叉树中 $n_1\in\{0,1\}$:奇数个结点时 $n_1=0$,偶数个结点时 $n_1=1$。

常见考法

题型① 给结点数求叶子数 / 度为 1 的结点数;② 给深度求最多结点数;③ 完全二叉树编号求父/孩子;④ 已知 $n_0$ 或 $n_2$ 互推。

易错点

必记
  1. $n_0 = n_2 + 1$ 对任意二叉树都成立,不只完全二叉树。
  2. “最多 $2^k-1$ 个”指满二叉树;非满二叉树结点数更少。
  3. 完全二叉树编号从 1 开始,公式依赖这一点。
  4. 叶子数用 $\lceil n/2\rceil$,不是 $\lfloor n/2\rfloor$。

核心结论

性质公式
叶子与度为 2 的关系$n_0 = n_2 + 1$
第 $i$ 层最多结点$2^{i-1}$
深度 $k$ 最多结点$2^k - 1$
完全二叉树编号父 $\lfloor i/2\rfloor$,左 $2i$,右 $2i+1$
深度下界$\lfloor\log_2 n\rfloor + 1$

记忆卡片

n₀ 与 n₂ 什么关系?
n₀ = n₂ + 1(任意二叉树)。
深度为 k 最多几个结点?
2ᵏ − 1。
完全二叉树叶子数?
⌈n/2⌉。
结点 i 的左孩子编号?
2i(不越界时)。

交互动画 · 五条性质逐层验证

完全二叉树 n = 15:逐层点亮结点,同步验证五条性质 1 23 4567 89101112131415 第1层:1 = 2⁰ 第2层:最多 2 = 2¹ 第3层:最多 4 = 2² 第4层:最多 8 = 2³
从第 1 层开始逐层验证「性质①:第 i 层最多 2^(i−1) 个结点」

相关知识点

binary-tree-storage binary-tree-traversal complete-binary-tree-properties

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。