题解 | 二叉树遍历
二叉树遍历
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;
}
腾讯云智研发成长空间 5055人发布