二叉树前序创建的问题

root赋不上值

用代码块功能插入代码,请勿粘贴截图

```c++
#include<iostream>
#include<queue>
using namespace std;

typedef char TElemType;
typedef bool Status;
#define OK true;
typedef struct BiNode{
    TElemType data;
    struct BiNode *lchild;
    struct BiNode *rchild;
}BiNode;
Status CreateBiTree(BiNode *node){
    TElemType input;
    cin>>input;
    if(input=='#')node=NULL;
    else{
        node=new BiNode();
        node->data=input;
        CreateBiTree(node->lchild);
        CreateBiTree(node->rchild);
    }
    return OK;
}


void LevelOrder(BiNode *b){
    BiNode *p;
    queue<BiNode*> queue;
    queue.push(b);
    while(!queue.empty()){
        p=queue.front();
        cout<<p->data<<endl;
        queue.pop();
        if(p->lchild!=NULL)queue.push(p->lchild);
        if(p->rchild!=NULL)queue.push(p->rchild);
    }
}
int main(){
    BiNode *root;
    cout<<CreateBiTree(root);
    LevelOrder(root);
    return 0;
}

```

Status CreateBiTree(BiNode *node){
改成
Status CreateBiTree(BiNode * &node){
=======
函数内是不能修改外部传入的指针参数的自身地址的。改成指针的引用,或者指针的指针。用引用更简单,其它代码都不需要修改

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632