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