题解 | #二叉树遍历#

二叉树遍历

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

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct tree{
    struct tree* lchild;
    struct tree *rchild;
    char v;
}tree,*node;
node create(char a[],char b[],int a1,int a2,int b1,int b2){
    node no=(tree *)malloc(sizeof(tree));
    no->v=a[a1];
    if(a1==a2){
        no->lchild=NULL;
        no->rchild=NULL;
        return no;
    }
    int len=0;
    int a11;
    int i;
    for(i=b1;b[i]!=a[a1];i++){
        len++;
    }
    if(len==0){
    no->lchild=NULL;
    no->rchild=create(a,b,a1+len+1,a2,i+1,b2);
    }else if(len+b1==b2){
        no->rchild=NULL;
        no->lchild=create(a,b,a1+1,a1+len,b1,i-1);
    }
    else{
        no->lchild=create(a,b,a1+1,a1+len,b1,i-1);
        no->rchild=create(a,b,a1+len+1,a2,i+1,b2);
    }
    return no;
}
void visit(node r){
    printf("%c",r->v);
}
void houxu(node r){
    if(r==NULL)return;
    houxu(r->lchild);
    houxu(r->rchild);
    visit(r);
}
int main() {
    char a[26],b[26],c[26];
    while(scanf("%s %s",a,b)!=EOF){
        int i=strlen(a);
        int j=strlen(b);
        node root=create(a,b,0,i-1,0,i-1);
        houxu(root);
        printf("\n");
    }
    
    return 0;
}

全部评论

相关推荐

友友们,我实在是不太明白,校招的话现在大多也是提前实习,然后转正也是需要考核的,考核通过才能转正,那这跟实习转正有什么区别啊
苦闷的仰泳鲈鱼刷了1...:提前实习,是让你提前熟悉业务的,后续是入职后可以减少试用期的(大部分是包入职的);转正实习,要是hc不够或者其他原因,让你正式offer可能都没有,这个风险很大。 ---个人看法和了解到的。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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