题解 | #二叉树遍历#
二叉树遍历
https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef
#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct TreeNode { char data; struct TreeNode* lchild; struct TreeNode* rchild; }TreeNode; // 前序建立二叉树 (中序,后序) void createTree(TreeNode** T, char* data, int* index) { char ch = data[*index]; *index += 1; if (ch == '#') { *T = NULL; } else { *T = (TreeNode*)malloc(sizeof(TreeNode)); (*T)->data = ch; createTree(&((*T)->lchild), data, index); createTree(&((*T)->rchild), data, index); } } // 中序遍历 void inOrder(TreeNode* T) { if (T == NULL) return; inOrder(T->lchild); printf("%c ", T->data); inOrder(T->rchild); } int main() { int index = 0; char s[110]; scanf("%s", s); TreeNode* T; createTree(&T, s, &index); inOrder(T); return 0; }