题解 | #二叉树遍历#

二叉树遍历

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;
}

全部评论

相关推荐

05-12 22:16
已编辑
北京邮电大学 研发工程师
牛客302360988号:0offer+1 滴滴都不给我面 佬没投鹅吗,鹅应该很喜欢北邮吧
投递美团等公司6个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务