Appearance
题目
若一棵二叉树的前序遍历序列和后序遍历序列分别为 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 |
| LLR | 3, 4, 2, 1 |
| LRL | 2, 4, 3, 1 |
| LRR | 2, 3, 4, 1 |
| RLL | 1, 4, 3, 2 |
| RLR | 1, 3, 4, 2 |
| RRL | 1, 2, 4, 3 |
| 全右(RRR) | 1, 2, 3, 4 |
对照选项:A、B、D 都在表中(分别是 RRR、LRR、LLL),而 C:3, 2, 4, 1 不在 8 种合法中序里——其结构会让 1 的左子树和右子树同时有节点(违反"单链"),与题面前后序逆序条件冲突。
最终答案是 C。