削除機能を終了しようとしています。
擬似コードは次のとおりです。最後に注意してください。
ただし、疑似コードが間違っているかどうかはわかりません。
これが私がそれをどのように解釈したかです:
Node* minNode = Minimum(toDelete->right);
int tmp = 0;
tmp = minNode->val;
// delete(&tmp);
free(minNode);
minNode=NULL;
toDelete->val=tmp;
ただし、削除すると、印刷時に1兆のゼロが埋められます。
私がやっていることは理にかなっていますか?私が持っている残りのコードは正しいか、とにかくそうだと思います。このシナリオでは台無しになるだけです。
こちらも最低限の機能
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;
}