题解 | 二叉树遍历

二叉树遍历

https://www.nowcoder.com/practice/6e732a9632bc4d12b442469aed7fe9ce

#include <iostream>
#include <string>
using namespace std;

struct treenode {
    char data;
    treenode* left = NULL;
    treenode* right = NULL;
};

void built(treenode*& root, string pre, string mid) {
    // if
    if (pre==""&&mid=="") {
        //cout << root->data;
        return;
    }
    root = new treenode;
    root->data = pre[0];
    int pos = mid.find(pre[0]);//找到分界点
   
    built(root->left, pre.substr(1, pos), mid.substr(0, pos));
    built(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;
        built(root, pre, mid);
        puts("");
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

牛客245670684号:虚拟货币预测正确率百分之99,还要找工作干嘛,不早就财富自由了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务