文章
43
粉丝
24
获赞
292
访问
6.5k
#include<bits/stdc++.h>
using namespace std;
typedef struct node{
char data;
struct node *left,*right;
}*BiTree;
int cur=0;//全局变量:记录当前遍历到的字符串下标 (不可使用index)
void creattree(BiTree &T,string str) {//建树
if (cur >= str.size()) { // 不用修补多余的#,超出size的说明就是NULL
T = NULL;
return;
}
if(str[cur]=='#') {
T=NULL;
cur++;//每遍历到一个元素index就++
}
else{
T=new node;
T->data=str[cur++];//每遍历到一个元素index就++
//creattree(T->left,str,i+1);
//creattree(T->right,str,i+1);逻辑有问题,如果这样的话,左右子树处理的都是同一个节点了
...
登录后发布评论
太强