最新华为OD机试
题目描述
有一棵二叉树,每个节点由一个大写字母标识(最多26个节点)。
现有两组字母,分别表示后序遍历(左孩子->右孩子->父节点)和中序遍历(左孩子->父节点->右孩子)的结果,请你输出层序遍历的结果。
输入描述
每个输入文件一行,第一个字符串表示后序遍历结果,第二个字符串表示中序遍历结果。(每串只包含大写字母)
中间用单空格分隔。
输出描述
输出仅一行,表示层序遍历的结果,结尾换行。
示例1
输入
CBEFDA CBAEDF
输出
ABDCEF
说明
二叉树为:
A / \ B D / / \ C E F
解题思路
解题思路
1. 理解遍历序列的特点
-
后序遍历:左子树 -> 右子树 -> 根节点
- 后序遍历的最后一个元素必定是整棵树的根节点
-
中序遍历:左子树 -> 根节点 -> 右子树
- 在中序遍历中,根节点左边的元素属于左子树,右边的元素属于右子树
2. 构建二叉树
- 确定根节点:从后序遍历的最后一个元素得到根节点
- 划分子树:
-
<

订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



