目录
题目描述
有一棵二叉树,每个节点由一个大写字母标识(最多26个节点) 现有两组字母,分别表示后序遍历(左孩子->右孩子->父节点)和中遍历(左孩子->父节点->右孩子)的结果,请你输出层序遍历的结果。
输入描述
每个输入文件一行,第一个字符串表示后序遍历结果,第二个字符串表示中序遍历结果。(每串只包含大写字母)中间用单空格分隔。
输出描述
输出仅一行,表示层序遍历的结果,结尾换行。
思路解析
思路1
前序遍历结果为: ABDC
层序遍历结果为: ABCD
有了以上关于二叉树遍历的知识后,我们就可以进行用例分析了,用例输入提供了一个二叉
树的后序遍历 CBEFDA,以及中序遍历 CBAEDF 的结果
首先,我们可以根据后序遍历,快速找到树根,即 CBEFDA 中的 A,因为根据左右根遍历顺
序,最后一个遍历元素肯定是这颗树的根节点
而找到根节点 A 后,我们又可以在中序遍历的左根右遍历顺序,找到 A 根的左、右子树,
即中序遍历中 A 节点的左边就是 A 根的左子树,右边就是 A 根的右子树。
而找到左右子树后,我们可以根据后序遍历,再分别找到左、右子树的根,