これは正しく見えますか?つまり、削除機能を実装しようとしています。
Node* BST::findNode(int tofind) {
Node* node = new Node;
node = root;
while (node != NULL) {
if (node->val == tofind) {
return node;
} else if (tofind < node->val) {
node = node->left;
} else {
node = node->right;
}
}
}
これが削除です。完了にはほど遠いですが、
void BST::Delete(int todelete) {
// bool found = false;
Node* toDelete = new Node();
toDelete=findNode(todelete);
if(toDelete->val!=NULL) {
cout << toDelete->val << endl;
}
}
これにより、それを実行するだけでセグメンテーション違反が発生します。アイデアはありますか?