P1083 - 构造一棵二叉树3

题目描述

给出一棵二叉树的先序遍历和中序遍历,请你编程构造出这棵二叉树,输出该二叉树的后序遍历结果

该二叉树的每个节点的值都是一个不重复的正整数,如下图的二叉树:

先序序列:1 2 4 7 3 5 8 9 6

中序序列:4 7 2 1 8 5 9 3 6

1.png

该二叉树对应的后序序列是: 7 4 2 8 9 5 6 3 1

输入格式

第1行,1个正整数n,代表二叉树中一共有n个节点

第2行,二叉树的先序遍历结果,每个整数使用一个空格分隔

第3行,二叉树的中序遍历结果,每个整数使用一个空格分隔

输出格式

第1行,二叉树的后序遍历结果,每个整数使用一个空格分隔

输入输出样例

输入样例 输出样例
9
1 2 4 7 3 5 8 9 6
4 7 2 1 8 5 9 3 6
7 4 2 8 9 5 6 3 1

数据范围与提示

对于100%的数据满足:1 <= n <= 1000,二叉树里每个节点里的值为1 - 1000,不会出现重复的值

本题数据量较大,可能需要用到C++加速读写

测试点数目

共10个测试点,每个测试点10分

时间与内存限制

每个测试点时间:1000ms(1.0s),内存:256MiB

输入输出模式

本OJ支持两种输入输出模式

1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:P1083.in,输出文件名为:P1083.out