#P1112. 系谱重建

    ID: 124 传统题 1000ms 256MiB 尝试: 0 已通过: 0难度: 普及 ← 上一题 下一题 → 随机一题 上传者: 标签 深度优先搜索 DFS 二叉树 递归 树的遍历 分治
显示设置

系谱重建

题目描述

族谱整理员小陈手上只剩下一份残卷:某一家族的族谱是一棵二叉树,每个家族的成员用一个 1∼n1\sim n 的编号表示。残卷上记着这棵二叉树的先序遍历和中序遍历,但后序遍历的那一页丢了。

请你根据先序和中序遍历,把这棵二叉树的后序遍历还原出来。

这里约定:遍历一个结点时,先序是「根、左子树、右子树」,中序是「左子树、根、右子树」,后序是「左子树、右子树、根」。

输入格式

第一行一个整数 nn,表示家族成员数(也是二叉树的结点数)。

第二行 nn 个整数,表示先序遍历。

第三行 nn 个整数,表示中序遍历。

保证输入对应唯一的一棵二叉树。

输出格式

一行 nn 个整数,表示后序遍历,数与数之间用一个空格隔开。

输入输出样例 #1

输入 #1

6
1 2 4 5 3 6
4 2 5 1 3 6

输出 #1

4 5 2 6 3 1

说明

数据范围

  • 对于 100%100\% 的数据,1≤n≤1041\le n\le 10^4。