一个 个节点的二叉树,输入它的前序遍历和中序遍历,输出它的后序遍历。
输入格式 第一行一个整数N。 第二行N个整数表示前序遍历,保证1~N各出现一次。 第二行N个整数表示中序遍历,保证1~N各出现一次。
输出格式 一行N个整数,表示后续遍历。
我的代码 求助大佬 爆零全MLE
#include <bits/stdc++.h>
#define ll int
using namespace std;
string s1,s2;
void gz(ll l1,ll r1,ll l2,ll r2){
char t=s1[l1];
ll t1=s2.find(t);
if(t1>l2) gz(l1+1,l1+t1-l2,l2,t1-1);
if(t1<r2) gz(l1+t1-l2+1,r1,t1+1,r2);
cout<<s1[l1]<<' ';
}
char gen;
ll b,c,d,e,f,g;
int main()
{
cin >>b;
for(int i=1;i<=b;i++){
cin >>gen;
s1+=gen;
}
for(int i=1;i<=b;i++){
cin >>gen;
s2+=gen;
}
gz(0,b-1,0,b-1);
return 0;
}