题解 | #二叉树遍历#
二叉树遍历
https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef
#include <stdio.h>
#include<stdlib.h>
#include<assert.h>
typedef char BTDataType;
typedef struct BinaryTreeNode
{
BTDataType _data;
struct BinaryTreeNode* _left;
struct BinaryTreeNode* _right;
}BTNode;
BTNode* BinaryTreeCreate(char*a,int*p)
{
if (a[*p] == '#')
{
(*p)++;
return NULL;
}
BTNode* root = (BTNode*)malloc(sizeof(BTNode));
if (root == NULL)
{
perror("malloc fail");
exit(-1);
}
root->_data = a[(*p)++];
root->_left = BinaryTreeCreate(a, p);
root->_right = BinaryTreeCreate(a, p);
return root;
}
void BinaryTreeInOrder(BTNode* root)
{
if (root == NULL)
return;
BinaryTreeInOrder(root->_left);
printf("%c ", root->_data);
BinaryTreeInOrder(root->_right);
}
int main()
{
char a[100];
scanf("%s",a);
int i = 0;
BTNode* root = BinaryTreeCreate(a,&i);
BinaryTreeInOrder(root);
}


查看30道真题和解析