题解 | #二叉树遍历#

二叉树遍历

https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef

#include <stdio.h>
#include<stdlib.h>

struct TreeNode
{
    char val;
    struct TreeNode* left;
    struct TreeNode* right;
};


struct TreeNode* CreatTree(char* arr, int* sz)
{
    struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
    if (arr[*sz] == '#')
    {
        return NULL;
    }
    root->val = arr[(*sz)++];
    root->left = CreatTree( arr, sz);
    (*sz)++;
    root->right = CreatTree(arr, sz);
    return root;
}


void PastTree(struct TreeNode* tmp)
{
    if (tmp == NULL)
    {
        //printf("# ");
        return;
    }
    PastTree(tmp->left);
    printf("%c ", tmp->val);
    PastTree(tmp->right);
}


int main()
{
    char arr[100] = "";
    scanf("%s", arr);
    int sz = 0;
    struct TreeNode* tmp = CreatTree(arr, &sz);

    PastTree(tmp);


    return 0;
}

全部评论

相关推荐

流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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