题目描述
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及先序遍历结果,要求输出其后序遍历结果。
输入
输入数据占2行,其中第一行表示中序遍历结果,第二行为先序遍历结果。
输出
对测试数据,输出后序遍历结果。
#include<bits/stdc++.h>
using namespace std;
void f(string s, string ss){
if(!s.size()) return;
int p = s.find(ss[0]);
f(s.substr(0, p), ss.substr(1, p));
f(s.substr(p+1), ss.substr(p+1));
cout<<ss[0];
}
int main(){
string s, ss;
cin>>s>>ss;
f(s, ss);
return 0;
}