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

全部评论

相关推荐

11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
10-16 23:37
已编辑
门头沟学院 运营
据说名字越长别人越关...:西交做运营吗。。就业市场已经颠了
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务