一、真题 1:前序 + 后序遍历反推中序(2011 年)

核心原理
二叉树的遍历规则:
- 前序遍历:根节点 → 左子树 → 右子树
- 中序遍历:左子树 → 根节点 → 右子树
- 后序遍历:左子树 → 右子树 → 根节点
关键结论:
- 仅通过前序 + 后序遍历,无法唯一确定一棵二叉树,但可以确定根节点、父子关系,以及每个节点的子树方向(左 / 右)。
- 若前序序列与后序序列完全逆序,说明这棵二叉树是单支树(每个节点最多只有一个子节点,要么全是左孩子,要么全是右孩子)。
解题分析
已知前序[1,2,3,4]、后序[4,3,2,1],可直接确定:
- 根节点是
1(前序第一个,后序最后一个) 2是1的子节点,3是2的子节点,4是3的子节点,整棵树为单支链结构
我们逐一验证选项:
- A 选项
1,2,3,4:对应右单支树 (每个节点只有右孩子)结构:1→右孩子2→右孩子3→右孩子4前序:1,2,3,4,后序:4,3,2,1,符合条件 ✅ - B 选项
2,3,4,1:对应左单支树 + 右单支混合 结构:1的左孩子2→右孩子3→右孩子4前序:1,2,3,4,后序:4,3,2,1,符合条件 ✅ - C 选项
3,2,4,1:若中序为3,2,4,1,则根1的左子树为[3,2,4]前序中1之后的子序列为[2,3,4],后序中1之前的子序列为[4,3,2]此时2作为左子树的根,中序中2的左子树为[3]、右子树为[4],则2有两个孩子,不再是单支树,前序会变为1,2,3,4,但后序会变为3,4,2,1,与题目后序4,3,2,1矛盾 ❌ - D 选项
4,3,2,1:对应左单支树 (每个节点只有左孩子)结构:1→左孩子2→左孩子3→左孩子4前序:1,2,3,4,后序:4,3,2,1,符合条件 ✅
答案:C
二、真题 2:先序与中序序列相同的条件(2017 年)

核心原理
先序遍历:根 → 左 → 右中序遍历:左 → 根 → 右
若两者序列完全相同,说明遍历顺序完全一致,即左子树必须为空(否则先序会先访问根,中序会先访问左子树,序列必然不同)。
解题分析
- 若每个非叶节点只有右子树 (左子树为空):先序遍历:
根 → 空 → 右子树根 → 空 → ...中序遍历:空 → 根 → 右子树根 → 空 → ...两者序列完全一致 ✅ - 若只有左子树:先序为
根→左→右,中序为左→根→右,序列必然不同 ❌ - 度为 1 的节点可能是左孩子或右孩子,若为左孩子则序列不同 ❌
- 度为 2 的节点有左右子树,序列必然不同 ❌
答案:B
补充验证
我们用 3 个节点的树举例:
- 右单支树:
1→右2→右3先序:1,2,3,中序:1,2,3,完全一致 - 左单支树:
1→左2→左3先序:1,2,3,中序:3,2,1,完全相反
三、真题 3:二叉树顺序存储的最小单元数(2020 年)
解析
1. 二叉树顺序存储的核心规则
二叉树的顺序存储,是按照完全二叉树的层序遍历顺序,将结点依次存入数组中。
- 对于完全二叉树,数组大小刚好等于结点数,无浪费;
- 对于非完全二叉树,必须为缺失的结点预留空的存储单元,以保证父子结点的下标关系(左孩子下标 = 2× 父结点下标,右孩子下标 = 2× 父结点下标 + 1)成立。
2. 高度为 h 的二叉树的顺序存储最大单元数
高度为h的二叉树,顺序存储需要的最大存储单元数,等于高度为 h 的满二叉树的结点总数,公式为:2h−1本题中树的高度为 5,因此满二叉树的结点总数为:25−1=32−1=31
3. 为什么不能选更小的数
题目要求的是存放该二叉树需要的存储单元至少是多少 ,这里的 "至少" 是指:无论这棵高度为 5、10 个结点的二叉树是什么形态,都能存下的最小通用空间。
- 高度为 5 的二叉树,最深层的结点在第 5 层,其在顺序存储中的下标最大为25−1=31,因此数组必须至少开到 31 个单元,才能覆盖所有可能的结点位置。
- 选项 B (16)、C (15)、D (10) 都无法覆盖高度为 5 的二叉树的最大下标,因此不可能满足要求。
答案A. 31
补充说明
- 顺序存储的本质是按完全二叉树的结构映射,因此树的高度直接决定了数组的最小长度,与实际结点数无关(只要高度确定,数组长度至少为2h−1)。
- 本题中 10 个结点是干扰项,核心约束是高度为 5,因此直接用满二叉树公式计算即可。
四、考点总结与解题技巧
核心考点梳理
| 考点 | 核心结论 | 解题技巧 |
|---|---|---|
| 遍历反推 | 前序 + 后序无法唯一确定树,中序是唯一能确定树的关键 | 先找根,再分左右子树,递归验证 |
| 遍历序列相同 | 先序 = 中序 → 无左子树(只有右子树);中序 = 后序 → 无右子树(只有左子树) | 直接用遍历规则推导,排除法验证 |
| 顺序存储 | 按完全二叉树层序编号存储,高度 h 的树需2^h -1个单元 |
区分实际节点数和预留单元数,不要混淆 |
避坑指南
- 单支树的遍历特性:全右单支树的先序 = 中序,全左单支树的后序 = 中序,前序与后序逆序
- 顺序存储的本质:是为完全二叉树设计的,非完全二叉树必须补空节点,因此单元数远大于实际节点数
- 遍历反推的边界:前序 + 后序只能确定根和父子关系,无法确定子树方向,因此会有多种可能的中序序列


