Я работаю над Java Binary Search Tree и пытаюсь использовать метод findHelp()
в find()
.Я ожидаю возвращаемое значение rt.getValue()
(которое равно C2-112 , поскольку я печатаю непосредственно перед возвратом), но распечатка findHelp()
в методе справки возвращает null
.
Я не смог найти похожую ошибку в Интернете, поэтому кто-то может помочь мне разобраться или дать ссылку на похожую проблему?
Вот мой код
private E findHelp(BinaryNode<Key, E> rt, Key k) {
int compare = k.compareTo(rt.getKey());
if (compare==0) {
System.out.println(rt.getValue()); // I'm getting C2-112 here
return rt.getValue(); // so I expect a return of C2-112
} else if (compare >0 ) {
if (rt.getRight() == null) {
return null;
} else {
findHelp(rt.getRight(), k);
}
} else {
if (rt.getLeft() == null) {
return null;
} else {
findHelp(rt.getLeft(), k);
}
}
return null;
} //
public E find(Key k) {
E tmp = findHelp(root, k);
System.out.println(tmp); // this prints null, not C2-112
return findHelp(root, k); // and so I return null
}