一、先搞懂:什么是二叉树?
二叉树(Binary Tree)是一种特殊的树形结构,定义非常清晰:它是由 n(n≥0) 个结点构成的有限集合,满足:
- 空树 :当
n=0时,二叉树为空; - 非空树 :
- 有且仅有一个根结点;
- 除根结点外,其余结点分为两个互不相交的子集
T₁和T₂,分别称为根的左子树 和右子树 ,且T₁、T₂本身也是二叉树。
- 核心特点 :
- 每个结点最多只有 2 棵子树(即度最大为 2);
- 子树有严格的左右之分,顺序不能颠倒(左子树和右子树是完全不同的两棵树)。
二叉树的 5 种基本形态
二叉树的结构非常灵活,基础形态只有 5 种:
- 空二叉树
- 仅有根结点
- 右子树为空(只有左子树)
- 左子树为空(只有右子树)
- 左右子树均非空
二、二叉树的核心性质:解题的 "万能公式"
掌握这些性质,是解决所有二叉树问题的基础,也是考试的核心考点:
性质 1:第 i 层的最大结点数
二叉树的第 i 层(根为第 1 层),最多有 2^(i-1) 个结点。
验证:第 1 层(根)
2^0=1,第 2 层最多 2 个,第 3 层最多 4 个,完全符合满二叉树的结构。
性质 2:深度为 k 的二叉树最大结点数
深度为 k 的二叉树,最多有 2^k - 1 个结点。
本质:等比数列求和
1+2+4+...+2^(k-1) = 2^k - 1,对应满二叉树的结点总数。
性质 3:叶子结点与度为 2 的结点的关系
对于任意非空二叉树,若叶子结点数为 n₀,度为 2 的结点数为 n₂,则恒有:n₀ = n₂ + 1
推导:设总结点数为
n,度为 1 的结点数为n₁,则n = n₀ + n₁ + n₂;又因为二叉树的边数 = 总结点数 - 1 =n-1,同时边数也等于n₁ + 2n₂(度为 1 的结点贡献 1 条边,度为 2 的贡献 2 条);联立得:n₀ + n₁ + n₂ - 1 = n₁ + 2n₂,化简后n₀ = n₂ + 1,完美成立。
三、特殊二叉树:满二叉树 & 完全二叉树
这两种是考试中最常考的二叉树类型,必须彻底分清:
1. 满二叉树
- 定义 :深度为
k,且结点总数为2^k - 1的二叉树。 - 特点 :
- 所有叶子结点都在最后一层;
- 除叶子结点外,每个结点都有 2 个子结点;
- 同深度下,满二叉树的结点数、叶子数都是最多的;
- 按层序编号(根为 1,从上到下、从左到右),编号为
i的结点,左孩子为2i,右孩子为2i+1,父结点为⌊i/2⌋。
2. 完全二叉树

- 定义 :深度为
k、有n个结点的二叉树,当且仅当它的每个结点,都与深度为k的满二叉树中编号从1到n的结点一一对应时,称为完全二叉树。 - 核心特点(判断依据) :
- 叶子结点只可能出现在最后两层;
- 若某结点没有左子树,则一定没有右子树;
- 上一层没有铺满,绝对不能有下一层结点;
- 对任意结点,若其右分支子孙的最大层次为
l,则左分支子孙的最大层次必为l或l+1。
完全二叉树的专属性质(解题神器)
性质 4:完全二叉树的深度
有 n 个结点的完全二叉树,深度为 ⌊log₂n⌋ + 1(向下取整后 + 1)。
性质 5:层序编号的父子关系
对 n 个结点的完全二叉树按层序编号(根为 1,每层从左到右),对任意结点 i(1≤i≤n):
- 若
i=1:结点i是根,无父结点;若i>1,父结点编号为⌊i/2⌋; - 若
2i > n:结点i无左孩子(是叶子结点);否则左孩子为2i; - 若
2i+1 > n:结点i无右孩子;否则右孩子为2i+1。
四、经典真题实战:把性质用起来
我们结合 3 道历年考研真题,手把手教你用性质解题,彻底吃透考点。
真题 1(2009):完全二叉树结点数最大值
题目:已知一棵完全二叉树的第 6 层(根为第 1 层)有 8 个叶结点,则该完全二叉树的结点个数最多是( )A. 39 B. 52 C. 111 D. 119
解题步骤:
- 分析结构:完全二叉树的叶子结点只能在最后两层,因此第 6 层有 8 个叶子,说明树的深度有两种可能:深度为 6,或深度为 7(要结点数最多,必然取深度 7)。
- 计算前 5 层满二叉树的结点数 :深度为 5 的满二叉树,结点总数为
2^5 - 1 = 31个。 - 计算第 6 层的结点数 :第 6 层最多有
2^(6-1) = 32个结点。其中 8 个是叶子结点,说明剩下32 - 8 = 24个结点是非叶子结点(有子结点)。 - 计算第 7 层的最大结点数 :第 6 层的 24 个非叶子结点,每个最多有 2 个子结点,因此第 7 层最多有
24 × 2 = 48个结点。 - 总结点数 :前 5 层 31 + 第 6 层 32 + 第 7 层 48 = 111,对应选项 C。
真题 2(2011):完全二叉树的叶子结点数
题目:若一棵完全二叉树有 768 个结点,则该二叉树中叶结点的个数是( )A. 257 B. 258 C. 384 D. 385
解题步骤:
方法 1:利用性质 3 + 完全二叉树的特点
- 完全二叉树中,度为 1 的结点数
n₁只能是 0 或 1(这是完全二叉树的核心特点)。 - 设叶子结点数为
n₀,度为 2 的结点数为n₂,则:- 总结点数
n = n₀ + n₁ + n₂ = 768 - 由性质 3:
n₀ = n₂ + 1→n₂ = n₀ - 1
- 总结点数
- 代入得:
n₀ + n₁ + (n₀ - 1) = 768→2n₀ + n₁ = 769 - 因为
2n₀是偶数,769 是奇数,所以n₁必须为 1(奇数),才能让等式成立。 - 因此
2n₀ + 1 = 769→n₀ = 384,对应选项 C。
方法 2:利用完全二叉树层序编号性质完全二叉树的叶子结点,是编号大于 ⌊n/2⌋ 的所有结点。n=768,⌊768/2⌋ = 384,因此叶子结点是编号 385~768,共 768 - 384 = 384 个,直接得出答案。
真题 3(2018):满二叉树的结点总数
题目:设一棵非空完全二叉树 T 的所有叶结点均位于同一层,且每个非叶结点都有 2 个子结点。若 T 有 k 个叶结点,则 T 的结点总数是( )A. 2k-1 B. 2k C. k² D. 2^k-1
解题步骤:
- 分析树的类型 :所有叶结点在同一层,且每个非叶结点都有 2 个子结点 → 这是一棵满二叉树。
- 满二叉树中,叶子结点数
n₀ = k,由性质 3n₀ = n₂ + 1,得度为 2 的结点数n₂ = k - 1。 - 满二叉树中没有度为 1 的结点(
n₁=0),因此总结点数n = n₀ + n₁ + n₂ = k + 0 + (k-1) = 2k - 1,对应选项 A。
补充验证:深度为 h 的满二叉树,叶子数
k=2^(h-1),总结点数2^h - 1 = 2×2^(h-1) - 1 = 2k - 1,完全一致。
五、总结:二叉树核心考点速记
表格
| 知识点 | 核心公式 / 结论 |
|---|---|
| 二叉树性质 3 | n₀ = n₂ + 1(所有二叉树通用) |
| 满二叉树 | 深度 k,结点数 2^k - 1,叶子数 2^(k-1),总结点数 2×叶子数 - 1 |
| 完全二叉树 | 度为 1 的结点数只能是 0 或 1;叶子结点为编号 >⌊n/2⌋的结点;深度 ⌊log₂n⌋+1 |
| 完全二叉树父子关系 | 父结点 ⌊i/2⌋,左孩子 2i,右孩子 2i+1 |
二