题目要求:
一个二叉树,树中每个节点的权值互不相同。
现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。
输入格式
第一行包含整数 N,表示二叉树的节点数。
第二行包含 N 个整数,表示二叉树的后序遍历。
第三行包含 N 个整数,表示二叉树的中序遍历。
输出格式
输出一行 N 个整数,表示二叉树的层序遍历。
数据范围
1≤N≤30,
官方并未给出各节点权值的取值范围,为方便起见,在本网站范围取为 1∼N。
输入样例:
7
2 3 1 5 7 6 4
1 2 3 4 5 6 7
输出样例:
4 1 6 3 5 7 2
先看代码:
首先给了我们中序遍历和后续遍历。
为了找到root在中序遍历对应的下标,我们可以开一个position数组存储数据对应的下标。
再记录root左边的点和右边的点,这里咱们用到递归的方式。
build函数的参数值为两个序列的区间,每次取两个区间中的后序遍历区间的最后一个点为root结点
递归调用就可以了,bfs宽搜是输出。先让根节点入队,输出,判断其是否有左右子树,让其入队