题解 | #二叉树遍历#
二叉树遍历
https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef
#include <stdio.h> #include <stdlib.h> typedef char BTDatatype; typedef struct BTreeNode { BTDatatype data; struct BTreeNode* left; struct BTreeNode* right; }BTNode; BTNode* BuyBTNode(BTDatatype x) { BTNode* node=(BTNode*)malloc(sizeof(BTNode)); if(node==NULL) { perror("malloc fail"); return NULL; } node->data=x; node->left=NULL; node->right=NULL; return node; } BTNode* TreeCreate(BTDatatype* arr, int* pi) { if(arr[*pi]=='#') { (*pi)++; return NULL; } BTNode* root = BuyBTNode(arr[(*pi)++]); root->left=TreeCreate(arr,pi); root->right=TreeCreate(arr,pi); return root; } void InOrder(BTNode* root) { if(root==NULL) { return; } InOrder(root->left); printf("%c ",root->data); InOrder(root->right); } int main() { BTDatatype arr[100]; int i=0; scanf("%s",arr); BTNode* root = TreeCreate(arr, &i); InOrder(root); return 0; }