题目:
给定一棵二叉树的前序遍历和中序遍历,求其层序遍历的结果。
输入:
两个字符串,其长度n均小于等于26
第一行为前序遍历,第二行为中序遍历
二叉树中的结点名称以大写字母表示:A,B,C….最多26个结点
输出:
输入样例可能有多组,对于每组测试样例
输出一行,为层序遍历的字符串
样例输入:
FDXEAG
XDEFAG
样例输出:
XEDGAF
解题思路:
1、先序遍历的第一个节点就是整棵二叉树的根节点,因此根据二叉树的根节点找到根节点在中序遍历中的位置。
2、中序遍历中的根节点的左边就是左子树,右边就是右子树,因此可以通过不断递归,来找到每一棵树。
3、得到二叉树后,通过层序遍历将结果添加到结果的子串当中。
4、层序遍历需要一个队列来记录遍历顺序。