Skip to content

2011年 408 数据结构 第 5 题

数据结构2011年选择题2分

题目

若一棵二叉树的前序遍历序列和后序遍历序列分别为 1,2,3,4 和 4,3,2,1,则该二叉树的中序遍历序列不会是()

错因

A

误以为 1,2,3,4 不可能。但当树是"全右链"——1 的右孩子是 2,2 的右孩子是 3,3 的右孩子是 4——前序 NLR、中序 LNR、后序 LRN 三者中:前序 = 1,2,3,4;中序 = 1,2,3,4;后序 = 4,3,2,1。完全符合题面条件,A 是合法中序。

B

误以为 2,3,4,1 不可能。构造 LRR 链:2 是 1 的左孩子,3 是 2 的右孩子,4 是 3 的右孩子。中序遍历会先访问 2 的左子树(空)→ 2 → 2 的右子树(即 3, 4 子链中序 3,4)→ 1 →空,得到 2,3,4,1。合法。

D

误以为 4,3,2,1 不可能。构造"全左链"——2 是 1 的左孩子,3 是 2 的左孩子,4 是 3 的左孩子——中序就是 4,3,2,1,符合 LNR 规则。这是与全右链对称的合法情况。

总解析

关键洞察:前序 1,2,3,4 + 后序 4,3,2,1 + 节点数 4 → 这棵树必然是一条单链(每个非叶节点只有 1 个孩子)。

为什么?前序去掉根后是 2,3,4,后序去掉根后是 4,3,2,恰好逆序。如果树有左右两个子树,前序里左子树的节点必在右子树之前,后序里左子树的节点也必在右子树之前——它们的相对顺序方向应相同。但本题前后序"完全反转",意味着每一层只有一个孩子,没有左右子树并存。

所以结构是 1→2→3→4 的链,每条边是左还是右共 种组合。中序遍历规律

  • 节点是父的孩子 → 中序中孩子排在父之前
  • 节点是父的孩子 → 中序中孩子排在父之后

枚举 8 种链,得到 8 种合法中序:

链结构(2/3/4 的位置)中序
全左(LLL)4, 3, 2, 1
LLR3, 4, 2, 1
LRL2, 4, 3, 1
LRR2, 3, 4, 1
RLL1, 4, 3, 2
RLR1, 3, 4, 2
RRL1, 2, 4, 3
全右(RRR)1, 2, 3, 4

对照选项:A、B、D 都在表中(分别是 RRR、LRR、LLL),而 C:3, 2, 4, 1 不在 8 种合法中序里——其结构会让 1 的左子树和右子树同时有节点(违反"单链"),与题面前后序逆序条件冲突。

最终答案是 C

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数