我遇到以下代码的问题.我是一名java开发人员,试图自学c ++.主要是我在main()中的代码没有向根节点插入任何内容.谁能帮我.我确信我的指针还有一些东西.
class Node{
    public:
        Node* left;
        Node* right;
        int data;
    Node(int n){
        data = n;
        right = NULL;
        left = NULL;
    }
};
class BST{
    Node* root;
    public:
    BST(){
        root = NULL;
    }
    void insert(int e){
        pinsert(root, e);
    }
    void pinsert(Node* sr, int e){
        if(sr == NULL){
            sr = new Node(e);
        }
        else{
            if((sr->data) > e ){
                pinsert(sr->left, e);
            }
            else{
                pinsert(sr->right, e);
            }
        }
    }
};
int main(){
    BST tree;
    tree.insert(6);
    tree.insert(7);
}
Run Code Online (Sandbox Code Playgroud)
    您传递sr值并分配给它.这不会改变你root.通过引用传递它:
void pinsert( Node*& sr, int e)
Run Code Online (Sandbox Code Playgroud)