题解 | #二叉树遍历#

二叉树遍历

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

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

struct Node {
    char data;
    Node* leftT;
    Node* rightT;
    Node(char c): data(c), leftT(NULL), rightT(NULL){}
};

Node * build(string prestr, string midstr){
    if(prestr.length() == 0)
        return NULL;
    Node* node = new Node(prestr[0]);
    int pos = midstr.find(prestr[0]);//在中序字符串中找到根结点的坐标
    node->leftT = build(prestr.substr(1, pos), midstr.substr(0, pos));
    node->rightT = build(prestr.substr(pos + 1), midstr.substr(pos + 1));
    return node;
}
//后序遍历
void inOrder(Node* node){
    if(node == NULL)
        return;
    inOrder(node->leftT);
    inOrder(node->rightT);
    cout << node->data;
}

int main() {
    string str1, str2;
    while (cin >> str1 >> str2) {
        Node* root = build(str1, str2);
        inOrder(root);
        cout << endl;
    }

    return 0;
}

全部评论

相关推荐

2024-12-27 23:45
已编辑
三江学院 Java
程序员牛肉:死局。学历+无实习+项目比较简单一点。基本就代表失业了。 尤其是项目,功能点实在是太假了。而且提问点也很少。第一个项目中的使用jwt和threadlocal也可以作为亮点写出来嘛?第二个项目中的“后端使用restful风格”,“前端采用vue.JS”,“使用redis”也可以作为亮点嘛? 项目实在是太简单了,基本就是1+1=2的水平。而你目标投递的肯定也是小厂,可小厂哪里有什么培养制度,由于成本的问题,人家更希望你来能直接干活,所以你投小厂也很难投。基本就是死局,也不一定非要走后端这条路。可以再学一学后端之后走测试或者前端。 除此之外,不要相信任何付费改简历的。你这份简历没有改的必要了,先沉淀沉淀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务