题解 | 二叉树遍历
二叉树遍历
https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef
#include <bits/stdc++.h>
#include <string>
using namespace std;
struct BiTNode{
char data;
BiTNode* left;
BiTNode* right;
BiTNode(char c):data(c),left(nullptr),right(nullptr){};
};
//使用引用调用index,保证其全局处理。
BiTNode* createTree(string a, int &index){
if(a[index]=='#'||index>=a.size()){
index++;
return nullptr;
}
BiTNode* root = new BiTNode(a[index]);
index++;
root->left=createTree(a, index);
root->right=createTree(a, index);
return root;
}
void inOrder(BiTNode* tree){
if(tree==nullptr){
return;
}
inOrder(tree->left);
cout<<tree->data<<" ";
inOrder(tree->right);
}
int main() {
string a;
cin>>a;
int index = 0;
BiTNode *tree = createTree(a, index);
inOrder(tree);
return 0;
}
查看14道真题和解析