题解 | #二叉树遍历#
二叉树遍历
https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef
简单的数组建树+中序遍历
#include <bits/stdc++.h>
using namespace std;
struct TreeNode {
char data;
TreeNode* left;
TreeNode* right;
};
TreeNode* BuileTree(int& i, char arr[]) {
char c = arr[i];
i++;
if (c == '#') {
return NULL;
} else {
TreeNode* pNew = new TreeNode;
pNew->data = c;
pNew->left = BuileTree(i, arr);
pNew->right = BuileTree(i, arr);
return pNew;
}
}
void inorder(TreeNode* pRoot) {
if (pRoot == NULL) {
return;
}
inorder(pRoot->left);
printf("%c ", pRoot->data);
inorder(pRoot->right);
}
int main() {
char arr[101] = {0};
while (scanf("%s", arr) != EOF) {
int i = 0;
TreeNode* proot = BuileTree(i, arr);
inorder(proot);
printf("\n");
}
return 0;
}

