Question 12
前中序推后序
已知二叉树前序为 [A, B, D, E, C, F, G],中序为 [D, B, E, A, F, C, G],后序遍历结果是?
正确答案
A. [D, E, B, F, G, C, A]
一句话考点
前序首元素是根,中序中根左边是左子树、右边是右子树,再递归拆分。
Prompt
题目与选项
已知二叉树前序为 [A, B, D, E, C, F, G],中序为 [D, B, E, A, F, C, G],后序遍历结果是?
A. [D, E, B, F, G, C, A]
B. [D, E, B, F, G, A, C]
C. [D, B, E, F, G, C, A]
D. [D, E, B, F, G, A, C]
Quick Check
做题抓手
先判断题型
先定位知识点,再决定是公式套用、手推样例还是结构重建。
再核对边界
第一轮很爱在闭区间、下标偏移、递归终止条件和布尔返回值上设陷阱。
最后看输出层次
尤其是阅读程序题,要分清函数返回值、变量值和最终打印值是不是同一件事。
Explanation
详细讲解
Step 1
前序第一个元素 `A` 一定是整棵树的根。把 `A` 放到中序里切开,可得左子树中序是 `[D, B, E]`,右子树中序是 `[F, C, G]`。
Step 2
左子树前序对应 `[B, D, E]`,所以左子树根是 `B`,进一步可得它的后序是 `[D, E, B]`。
Step 3
右子树前序对应 `[C, F, G]`,根是 `C`,后序是 `[F, G, C]`。
Step 4
整棵树后序 = 左后序 + 右后序 + 根 = `[D, E, B, F, G, C, A]`,故选 A。
Pitfalls
易错点
- 知道根在前序第一位,却不会用中序把左右子树切开。
- 把后序顺序写成“根在中间”或“根在前面”,顺序概念混乱。
Extend
拓展补充
- 二叉树重建的核心永远是:前序定根,中序分左右;后序定根,中序分左右。
返回总览
回到整套试卷
返回题目总览页,继续从目录、知识图谱或其他分区进入。
所属分区
返回 单项选择
回到首页对应分区,继续顺序刷题或查看同类知识点。
上一题
第 11 题
无向图度数之和
下一题
第 13 题
栈的出栈序列