已知二叉树的中序遍历是 [D, B, E, A, F, C],先序遍历是 [A, B, D, E, C, F]。请问该二叉树的后序遍历结果是( )。
根据二叉树的遍历特性,先/前序遍历确定根节点,中序遍历确定左右子树范围,从而重构整棵树,再输出后序遍历结果。
易混淆三种遍历的顺序。先序:根左右;中序:左根右;后序:左右根。注意遍历结果中相邻节点的关系。
【考点】二叉树遍历|树的重构
考纲定位:GESP 六级 C++(202509)的"树遍历"考点,命题人用"已知中序 + 先序求后序"卡住所有只会背结论的考生——他们根本不懂遍历的本质,只会机械代入。
解题思维:先序首元素是根(A),在中序里把 A 左边 [D,B,E] 归左子树、右边 [F,C] 归右子树;左子树先序 [B,D,E] 同理拆出 B 为根,再拆出 D、E;右子树先序 [C,F] 拆出 C 为根,再拆出 F;得到完整树结构后,后序就是左→右→根:D,E,B,F,C,A。
陷阱拆解:B 错在把左子树的 E 提前,这是没看清先序里 E 在 B 右下方;C 错在把右子树的 F 提前,这是把中序的 F 当成右子树根;D 错在把左子树根 B 当成第一个输出,这是完全搞反了后序定义。若你只背"后序=左中右"而不理解树结构,必掉坑。
反命题思维:如果把先序换成后序 [D,E,B,F,C,A],再给中序求先序,答案会变成 [A,B,D,E,C,F]——命题人就是靠"遍历顺序互换"来考同一棵树的本质。所以刷到树遍历题时,先问"这棵树的根是谁?左右子树在哪?"