我正在尝试完成删除功能。
这是伪代码,注意结尾:
我不知道伪代码是否错误。
以下是我的解释:
Node* minNode = Minimum(toDelete->right);
int tmp = 0;
tmp = minNode->val;
// delete(&tmp);
free(minNode);
minNode=NULL;
toDelete->val=tmp;
除了一旦删除它,它就会在打印时开始填充一万亿个零。
我在做什么有意义吗?我所拥有的其余代码是正确的,或者无论如何我都这么认为。它只会在这种情况下搞砸。
这也是最小功能
Node* BST::Minimum(Node *curr) {
// if (curr->left != NULL) {
// return(Minimum(curr->left));
// }
// return curr;
Node* node = curr;
while (node->left != NULL) {
node = node->left;
}
return node;
}