题解 | #二叉树遍历#

二叉树遍历

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

#include <stdio.h>

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

TreeNode* BuildTree(char* str, int* index) {
    if (str[*index] == '\0' || str[*index] == '#') {
        (*index)++;
        return NULL;
    }
    TreeNode* Node = (TreeNode*)malloc(sizeof(TreeNode));
    Node->val = str[*index];
    (*index)++;
    Node->left = BuildTree(str, index);
    Node->right = BuildTree(str, index);
    return Node;
}

void Intravel(TreeNode* Tree) {
    if (Tree == NULL)
        return;
    Intravel(Tree->left);
    printf("%c ", Tree->val);
    Intravel(Tree->right);
}

int main() {
    char str[101];
    while (scanf("%s", str) != EOF) { // 注意 while 处理多个 case
        int index = 0;
        TreeNode* Tree = BuildTree(str, &index);
        Intravel(Tree);
    }
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:11
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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