THU2017spring 2-3 Rebuild
描述
某二叉树的n个节点已经用[1, n]内的整数进行了编号。现给定该二叉树的先序遍历序列和中序遍历序列,试输出其对应的后序遍历序列。
输入
第一行为一个整数n。
第二、三行,即已知的先序、中序遍历序列,数字之间以空格分隔。
输出
仅一行。
若所给的先序、中续遍历序列的确对应于某棵二叉树,则输出其后序遍历序列,数字之间以空格分隔。否则,输出-1。
输入样例1
5
1 2 4 5 3
4 2 5 1 3
输出样例1
4 5 2 3 1
输入样例2
4
2 3 1 4
4 2 1 3
输出样例2
-1
输入样例3
8
5 2 4 1 3 6 7 8
4 2 1 5 3 7 6 8
输出样例3
4 1 2 7 8 6 3 5
限制
1 <= n <= 500,000
输入和输出的遍历序列均为[1, n]内整数的一个排列,整数间均以空格分隔。
时间:1 sec
空间:256 MB
提示
● 注意观察特殊节点在不同遍历序列中的位置
● 提示(.docx):
对应输入样例1的树结构:
先序遍历序列:12453
中序遍历序列:42513
注意到根节点就是先序序列的首元素,找到根节点后,根据根节点在中序序列中的位置,可划分出左右子树。
代码:(一个点TLE没过,其它都OK)
继续阅读