树是 “非线性结构” 的代表(区别于线性表的 “一对一”,树是 “一对多”),而二叉树是树结构中最常用、考试最核心的类型(90% 的树相关题目围绕二叉树展开)。比如电脑中的文件系统(C 盘→文件夹→文件)、数据库中的 B + 树索引,都基于树结构设计。下文从 “树的基本概念” 入手,重点拆解二叉树的性质、遍历和特殊类型,确保每个考点都有 “例子 + 计算”。
一、先搞懂:树的基本概念(基础铺垫)
树的结构像 “自然界的树”,有根、枝、叶,先记清核心术语(考试常考术语辨析):
|
术语 |
通俗解释 |
例子(以文件系统树为例) |
|
根节点 |
树的最顶层节点(没有父节点) |
C 盘(整个文件系统的根) |
|
父节点 / 子节点 |
直接上层节点为父,直接下层节点为子 |
“文档” 文件夹是 “C 盘” 的子节点,“C 盘” 是父节点 |
|
叶子节点 |
没有子节点的节点(树的最底层) |
“简历.docx” 文件(没有下层内容) |
|
节点的度 |
该节点拥有的子节点数量 |
“文档” 文件夹有 3 个文件→度为 3 |
|
树的深度 |
从根节点到最底层叶子节点的层数(根为 1 层) |
C 盘→文档→简历.docx→深度为 3 |
关键提醒:树的 “深度” 计算有两种说法(根为 0 层或 1 层),考试中若未说明,默认 “根为 1 层”(按官方教程标准)。
二、核心考点 1:二叉树的定义与重要性质
二叉树是 “每个节点最多有两个子节点” 的树(左子节点和右子节点,顺序不能乱),比如 “左子树存小于父节点的值,右子树存大于父节点的值”(后续二叉搜索树会讲)。考试重点考二叉树的 5 个重要性质(常考计算),需熟记并会应用。
1. 二叉树的 5 个重要性质(必背 + 计算)
性质 1:第 i 层最多有 2^(i-1) 个节点(i≥1)
- 解释:第 1 层(根)最多 1 个(2^0=1),第 2 层最多 2 个(2^1=2),第 3 层最多 4 个(2^2=4),以此类推;
- 计算示例:求第 5 层最多有多少个节点?→ 2^(5-1)=16 个。
性质 2:深度为 k 的二叉树,最多有 2^k -1 个节点(k≥1)
- 解释:所有层的最大节点数相加(1+2+4+...+2^(k-1) = 2^k -1);
- 计算示例:深度为 3 的二叉树最多有多少节点?→ 2^3 -1=7 个(1+2+4)。
性质 3:任意二叉树,叶子节点数 = 度为 2 的节点数 + 1(记为 n0 = n2 + 1)
- 解释:度为 0 的是叶子节点(n0),度为 1 的是有 1 个孩子的节点(n1),度为 2 的是有 2 个孩子的节点(n2);总节点数 n = n0 + n1 + n2,同时通过 “边” 的数量推导可得 n0 = n2 +1;
- 计算示例:某二叉树有 5 个度为 2 的节点,3 个度为 1 的节点,求叶子节点数?→ n0=5+1=6 个,总节点数 = 6+3+5=14 个。
性质 4:完全二叉树的叶子节点数(重点)
完全二叉树是 “除最后一层外,每一层节点数都满,最后一层节点从左到右排满(不能空左缺右)”(后续会细讲),其叶子节点数满足:
- 若总节点数 n 为奇数:n0 = (n+1)/2;
- 若总节点数 n 为偶数:n0 = n/2;
- 计算示例:完全二叉树有 15 个节点(奇数)→ n0=(15+1)/2=8 个;有 14 个节点(偶数)→ n0=14/2=7 个。
性质 5:完全二叉树中,节点 i(从根开始按层编号,左到右)的左孩子是 2i,右孩子是 2i+1(父节点是 i//2)
- 解释:根节点编号 1,第 2 层左 2 右 3,第 3 层左 4 右 5、左 6 右 7,以此类推;
- 计算示例:编号为 5 的节点,左孩子 = 2×5=10,右孩子 = 2×5+1=11,父节点 = 5//2=2(整除)。
2. 特殊二叉树(考试高频)
|
类型 |
定义 |
关键特征(便于判断) |
|
满二叉树 |
深度为 k,且节点数 = 2^k -1(每一层都满) |
叶子节点全在最后一层,没有度为 1 的节点 |
|
完全二叉树 |
除最后一层外全满,最后一层从左到右排满 |
度为 1 的节点最多 1 个(要么 0 个,要么 1 个) |
|
二叉搜索树(BST) |
左子树所有节点值<父节点值,右子树所有节点值>父节点值 |
中序遍历结果是 “从小到大的有序序列” |
判断示例:
- 深度为 3,节点数 7→满二叉树(也是完全二叉树);
- 深度为 3,节点数 6→完全二叉树(最后一层左 4、5,缺 6、7);
- 深度为 3,节点数 5→不是完全二叉树(最后一层左 4,缺 5,右 6 存在→空左缺右,不符合)。
三、核心考点 2:二叉树的遍历(必考)
遍历是 “按一定顺序访问二叉树的所有节点”,考试重点考 3 种遍历方式:前序(根→左→右)、中序(左→根→右)、后序(左→右→根),核心是 “递归思想”(也可用栈 / 队列实现非递归,但考试重点考递归逻辑)。
1. 三种遍历的定义(记顺序)
以如下二叉树为例(根 A,左子树 B,右子树 C;B 的左 D,右 E;C 的左 F):
A
/ \
B C
/ \ /
D E F
(1)前序遍历(根→左→右)
步骤:先访问根节点,再递归遍历左子树,最后递归遍历右子树;
遍历结果:A → B → D → E → C → F。
(2)中序遍历(左→根→右)
步骤:先递归遍历左子树,再访问根节点,最后递归遍历右子树;
遍历结果:D → B → E → A → F → C。
(3)后序遍历(左→右→根)
步骤:先递归遍历左子树,再递归遍历右子树,最后访问根节点;
遍历结果:D → E → B → F → C → A。
2. 遍历结果推导(真题高频)
考试常考 “已知两种遍历结果,求第三种”,核心是 “中序遍历 + 前序 / 后序,可唯一确定二叉树”(前序 + 后序不能唯一确定,因无法判断左 / 右子树范围)。
推导示例:已知前序 A→B→D→E→C→F,中序 D→B→E→A→F→C,求后序。
Step1:前序的第一个节点是根(A);
Step2:在中序中找 A 的位置,左边是左子树(D→B→E),右边是右子树(F→C);
Step3:前序中 A 之后的节点是左子树的前序(B→D→E),再之后是右子树的前序(C→F);
Step4:对左子树(根 B)重复 Step1-Step3:中序左 D,右 E→前序 B→D→E,中序 D→B→E;
Step5:对右子树(根 C)重复 Step1-Step3:中序左 F,右空→前序 C→F,中序 F→C;
Step6:按后序规则遍历,结果 D→E→B→F→C→A(和之前一致)。
3. 遍历的应用场景
|
遍历方式 |
应用场景 |
例子 |
|
前序遍历 |
复制二叉树、获取树的前缀表达式 |
按前序顺序复制节点,保持树结构 |
|
中序遍历 |
二叉搜索树排序(从小到大) |
中序遍历 BST,得到有序序列 |
|
后序遍历 |
计算二叉树的节点数、高度(先算子树) |
后序遍历每个节点时,累加子树节点数 |
四、核心考点 3:二叉树的高度计算(常考)
树的高度(深度)是 “从根到最远叶子节点的层数”,考试常考 “根据遍历结果或节点数计算高度”,核心是 “递归计算左、右子树高度,取最大值 + 1(根节点)”。
1. 已知二叉树结构,计算高度
以上面的二叉树为例:
- 根 A 的左子树(B)高度:B 的左 D(高度 1)、右 E(高度 1)→ 左子树高度 = 1+1=2;
- 根 A 的右子树(C)高度:C 的左 F(高度 1)、右空→ 右子树高度 = 1+1=2;
- 根 A 的高度 = max (2,2)+1=3。
2. 已知完全二叉树的节点数,计算高度
完全二叉树的高度 k 满足:2^(k-1) ≤ n < 2^k(n 是总节点数),高度 k=⌈log₂(n+1)⌉(向上取整)或 k=⌊log₂n⌋+1(向下取整)。
计算示例:
- n=15(满二叉树):2^(3-1)=4 ≤15 <8=2^3?不对,2^(4-1)=8 ≤15 <16=2^4→k=4;
- n=10:2^(3-1)=4 ≤10 <8?不对,2^3=8 ≤10 <16=2^4→k=4;
- 公式验证:⌊log₂10⌋+1=3+1=4(正确)。
五、备考小贴士(3 步搞定)
- 记性质与公式:重点背二叉树的 5 个性质(尤其是 n0=n2+1、完全二叉树的叶子节点数和高度计算),每天花 5 分钟默写;
- 练遍历推导:找 10 道 “已知前序 + 中序,求后序” 的题目,按 “找根→分左右子树→递归” 的步骤练习,确保能快速推导;
- 辨特殊二叉树:记住满二叉树、完全二叉树、BST 的关键特征(如完全二叉树度为 1 的节点最多 1 个),做题时先判断类型,再用对应性质计算。
下一篇【基础知识】专栏将讲解 “图结构基础”(图的定义、存储、遍历),图是更复杂的非线性结构(“多对多”),考试中常结合 “最短路径”“拓扑排序” 出题,建议提前回顾树的遍历逻辑(图的遍历是树遍历的延伸)。
3740

被折叠的 条评论
为什么被折叠?



