Это синтаксически правильный Java. Но я не понимаю, как это могло бы делать то, что вы собираетесь.
Оказывается, что параметр «элемент» является, что вы ищете и «первое» поле в текущем классе является корнем бинарного дерева.
Неясно , если ключ для бинарного дерева и поиска (в классе Element) является «активом» или «данные». «Меньше , чем» тест использует «актив», в то время как «больше чем» «данных» тест использует. Вполне вероятно , что обе линии должны использовать то же поле. Может быть , что одна из этих двух полей ( «активов» или «данные») должны не ссылаться в этом методе вообще. Может быть , последняя строка метода должна быть просто «возвращает истину;»?
(Я подозреваю, что «условие остановки» и «код не является симметричным» ответы выше и неправильно Но я могу ошибаться:. Трудно сказать только код, указанный.)
Я согласен, что зацикливания, вероятно: Я подозреваю, что вам нужно, чтобы создать вторую функцию «поиска», которая принимает два параметра «элемент» - одна из которых вещь для поиска (как текущего параметра «элемент»), а другой следующий элемент для поиска - эквивалент текущей локальной переменной «с». Я хотел бы сделать «Extract Method» рефакторинга на все в теле текущего метода «поиск», за исключением первой строки, а затем изменить два рекурсивных вызовов использовать новый метод.
(Некоторые из этих умозрительно, на основе я предполагаю, что вы хотите или намерены, учитывая ограниченный объем информации. Таким образом, я мог бы, конечно, совершенно неправильно.)