这是我的插入方法:
void BST::insert(Node* cur, int x) { //private method
if (!cur) {
cur = new Node(x);
}
else {
if (x < cur->val) {
if (cur->left) {
insert(cur->left, x);
}
else {
cur->left = new Node(x);
}
}
else if (x > cur->val) {
if (cur->right) {
insert(cur->right, x);
}
else {
cur->right = new Node(x);
}
}
}
}
void BST::insert(int x) { //public method
insert(root, x); //root is the root of the tree (private variable)
}
如果我的根指针不是NULL,它就可以工作。但是,如果根是NULL,则它不构造成节点指针。由于指针通过引用传递,不应该在函数范围之外保存吗?感谢