题解 | #二叉树遍历#
二叉树遍历
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;
}