题解 | 二叉树遍历

二叉树遍历

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

#include <stdio.h>
#include <stdlib.h>
//定义二叉树结构
typedef char BTDateType;
typedef struct BinaryTreeNode
{
    BTDateType val;
    struct BinaryTreeNode* left;
    struct BinaryTreeNode* right;
}BTNode;
BTNode* CreateBTNode(char* a,int* k)
{
    if (a[*k] == '#') {
        (*k)++;
        return NULL;
    }
    BTNode* root = (BTNode*)malloc(sizeof(BTNode));
    root->val = a[(*k)++];
    root->left = CreateBTNode(a,  k);
    root->right = CreateBTNode(a, k);

    return root;
}
//中序遍历
void InOrder(BTNode* root)
{
    if (root == NULL) {
        return;
    }
    InOrder(root->left);
    printf("%c ",root->val);
    InOrder(root->right);
}
int main() {
    char a[100];
    scanf("%s",a);
    int k = 0;
    BTNode* root = CreateBTNode(a, &k);
    //中序遍历
    InOrder(root);
    return 0;
}













全部评论

相关推荐

hwwhwh:同双非,有大厂实习其实也没啥用,主要看运气,等就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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