私はBSTを持っており、BSTからノードを削除したいときは何も起こりません。誰かが理由を説明できますか?ここでBSTのノードの削除
は私のコードです:
private void delete(int value, Node node) {
if (value<node.value) delete(value, node.left);
else if (value> node.value)
delete(value, node.right);
else {
if (node.left != null && node.right != null) {
int maxFromLeft = findMax(node.left);
node.value = maxFromLeft;
delete(maxFromLeft, node.left);
} else if (node.left != null) {
Node trash = node;
node = node.left;
trash = null;
} else if (node.right != null) {
Node trash = node;
node = node.right;
trash = null;
} else {
node = null;
}
}
}
問題の[MCVE](http://stackoverflow.com/help/mcve)を提供してください。これは、バグが他の機能に隠されることがあるため、他人があなたのバグを再現するのを助け、見つけます。例えば、単純化された 'Node'クラスと' findMax'関数です。簡単なテストケースとエラー出力、期待される出力を提供できる方が良いでしょう。 – Nier
Javaが持っていない、参照渡しのセマンティクスを想定しているようです。 –