题解 | Problem D
Problem D
https://www.nowcoder.com/practice/3769e5ca06594e959b4952c75a108aaf
#include <iostream>
#include<string>
using namespace std;
struct treenode {
char data;
treenode* left = NULL;
treenode* right = NULL;
};
void postorder(treenode*& root, string pre, string mid) {
if (pre.empty())return;
int pos = mid.find(pre[0]);
root = new treenode;
root->data = pre[0];
postorder(root->left, pre.substr(1, pos), mid.substr(0,pos));
postorder(root->right, pre.substr(pos + 1), mid.substr(pos + 1));
cout << root->data;
}
int main() {
string pre, mid;
while (cin >> pre >> mid) { // 注意 while 处理多个 case
treenode* root = NULL;
postorder(root, pre, mid);
cout<<endl;
}
}
// 64 位输出请用 printf("%lld")
OPPO公司福利 1056人发布