题解 | 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")