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