ツリー内の要素を上書きする必要があります。クラスツリーには、キーと左と右があります。 BSTではないとしましょう。ツリー内の要素をJavaで上書きする
ここまでは私のコードです。それは木の左半分ではうまくいくが、右半分ではうまくいかない。私はそれを動作させるためのほんの少しの変更だと思うが、何らかの助けがなければそれをやり遂げることはできない。
public T overwriteOne(TreeNode<T> tree, T element, T newElement) {
if (tree == null)
return null;
if (tree.key.equals(element)) {
tree.key = newElement;
return tree.key;
}
else if (tree.left != null) {
return overwriteOne(tree.left, element, newElement);
}
else if (tree.right != null){
return overwriteOne (tree.right, element, newElement);
}
return null;
}
は右half'のための少しより多くのあなたがeleborate 'が、できませんでしたか? – SomeJavaGuy
どのように動作しないか正確に説明してください。 – molbdnilo
[OK]をクリックします。 このメソッドは、左のサブツリー内の要素を検索します。 "tree.left。..."で始まるものすべて。例えば "tree.left.left.right"さえ。 しかしtree.rightで始まる右のサブツリーの要素は見つかりません。 – Jurek