再帰的メソッドの基本条件については不思議です。私の講義では、先生が何度か基本条件を様々な方法で書き記していることがわかります。私はこのようなプライベートな方法で基本条件を記述する場合は、公共の方法でここ再帰的メソッドの基本条件
基本条件
public E find(E x) {
if (x == null) {
return null;
}
return find(root,x);
}
private E find(BinaryNode<E> n, E x) {
if (n.element.equals(x)) {
return n.element;
}
else if (x.compareTo(n.element) < 0) {
return find(n.left, x);
}
else {
return find(n.right, x);
}
}
が、それはOKです:
public E find(E x) {
return find(root,x);
}
private E find(BinaryNode<E> n, E x) {
if (n == null) {
return null;
}
else if (n.element.equals(x)) {
return n.element;
}
else if (x.compareTo(n.element) < 0) {
return find(n.left, x);
}
else {
return find(n.right, x);
}
}
質問に関連するコードをここに入力してください。死ぬかもしれない外部のリンクに依存しないでください。 –
'n.left'(または' n.right')が 'null'の場合、最初のケースで何が起こると思いますか? –
'if(n == null)'ではなく 'if(x == null)'を意味しましたか? – Berger