题解 | #二叉树遍历#

二叉树遍历

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

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

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


//把字符串转换成树
TreeNode* CreateTree(char* str,int* pi)
{
    if(str[*pi]=='#')
    {
        (*pi)++;
        return NULL;
    }
    else 
    {
        TreeNode* root=(TreeNode*)malloc(sizeof(TreeNode));
        root->val=str[*pi];
        (*pi)++;
        root->left= CreateTree(str, pi);
        root->right= CreateTree(str, pi);
        return root;
    }

}

//再中序遍历一遍
void InOrder(TreeNode* root)
{
    if(root==NULL)
    {
        return;
    }
    
    InOrder(root->left);
    printf("%c ",root->val);
    InOrder(root->right);
}


 int main()
 {
    char str[100]="0";
    scanf("%s",str);
    int i=0;
    TreeNode* root=CreateTree(str,&i);
    InOrder(root);
    return 0;
 }

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务