题解 | #二叉树遍历#

二叉树遍历

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

#include <cstddef>
#include <iostream>
#include <cstring>
using namespace std;
struct Bitree{
    char data;
    struct Bitree* lchild;
    struct Bitree* rchild;
    Bitree(char x):data(x),lchild(NULL),rchild(NULL){}
};
Bitree* buildT(string front,string mid){
    if(front==""||mid=="") return NULL;
    Bitree* r=new Bitree(front[0]);
    char n=front[0];
    int loc=mid.find(n);
    r->data=n;
    r->lchild=buildT(front.substr(1,loc), 
    mid.substr(0,loc));
    r->rchild=buildT(front.substr(loc+1), 
    mid.substr(loc+1));
    return r;
}
void backorder(Bitree* root){
    if(root==NULL) return;
    backorder(root->lchild);
    backorder(root->rchild);
    cout<<root->data;
}
int main() {
    string f,m;
    while(cin>>f>>m){
        Bitree* r= buildT(f, m);
        backorder(r);
        cout<<endl;

    }
}

全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
昨天 19:03
门头沟学院 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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