Question 12

前中序推后序

已知二叉树前序为 [A, B, D, E, C, F, G],中序为 [D, B, E, A, F, C, G],后序遍历结果是?

单项选择2难度 中等

正确答案

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

详细讲解

  1. Step 1

    前序第一个元素 `A` 一定是整棵树的根。把 `A` 放到中序里切开,可得左子树中序是 `[D, B, E]`,右子树中序是 `[F, C, G]`。

  2. Step 2

    左子树前序对应 `[B, D, E]`,所以左子树根是 `B`,进一步可得它的后序是 `[D, E, B]`。

  3. Step 3

    右子树前序对应 `[C, F, G]`,根是 `C`,后序是 `[F, G, C]`。

  4. Step 4

    整棵树后序 = 左后序 + 右后序 + 根 = `[D, E, B, F, G, C, A]`,故选 A。

Pitfalls

易错点

  • 知道根在前序第一位,却不会用中序把左右子树切开。
  • 把后序顺序写成“根在中间”或“根在前面”,顺序概念混乱。

Extend

拓展补充

  • 二叉树重建的核心永远是:前序定根,中序分左右;后序定根,中序分左右。

返回总览

回到整套试卷

返回题目总览页,继续从目录、知识图谱或其他分区进入。

所属分区

返回 单项选择

回到首页对应分区,继续顺序刷题或查看同类知识点。

上一题

第 11 题

无向图度数之和

下一题

第 13 题

栈的出栈序列