Вы уже получили свой ответ. В будущем, чтобы предотвратить подобные ошибки, лучше просто return
значение сразу, если вы можете. МОЖНО иметь несколько return
; при правильном использовании он может читать более читаемый код.
public boolean nodeExist(TreeNode Tree, T value){
if (Tree.getValue() == null) return false;
if (value == Tree.getValue()) return true;
if (value.compareTo((T) Tree.getValue()) < 0) {
return nodeExist(Tree.getLeft(), value);
} else {
return nodeExist(Tree.getRight(), value);
}
}
Смотрите также
Кроме того, я заметил, что вы использовали ==
вместо equals
для сравнения объектов (т. Е. T
не может быть примитивным типом). Это редко правильно; equals
почти всегда то, что на самом деле предназначено.
Смотри также
Еще один совет по стилю, следуйте соглашению об именах для Java, где имена переменных начинаются со строчной буквы, с заглавной буквы для внутренних слов (так, somethingLikeThis
).
Программирование заключается не в том, чтобы все было правильно, а в том, чтобы что-то читалось. Изучите и примите хороший стиль кодирования и следуйте установленным правилам.