#include<iostream>
using namespace std;
int front[1005],mid[1005],sh[1005];
void dfs(int fl, int fr, int ml, int mr){
if(fl>fr || ml>mr)return ;
int index = sh[front[fl]];
dfs(fl+1,fl+index-ml,ml,index-1);
dfs(fl+index-ml+1,fr,index+1,mr);
cout << front[fl] << " ";
}
int main(){
int n;
while(cin >> n){
for(int i = 1; i <= n; i ++) cin >> front[i];
for(int i = 1; i <= n; i ++) cin >> mid[i];
//哈希,保存中序每个值的位置
for(int i = 1; i <= n; i ++)
sh[mid[i]] = i;
dfs(1,n,1,n);
cout << endl;
}
return 0;
}
HDU Binary Tree Traversals 前中转后(二叉树)
最新推荐文章于 2021-05-07 08:03:37 发布