У меня есть бинарное дерево поиска. Я знаю, как искать, используя свойство поиска. Но моя задача - искать дерево без использования свойства поиска (скажем, поиск в двоичном дереве). Вот как я должен искать.
1. Если вы найдете значение в текущем узле, верните его.
2. иначе ищите справа. Если не найдено справа, то ищите слева
3. Если не найдено во всем дереве, верните ноль.
Это то, что я пробовал.
public Node search(int val)
{
Node target = this;
if(target.getVal() == val)
return this;
else if(target.getRight() == null && target.getLeft() == null)
return null;
if(target.getRight() != null)
{
return target.getRight().search(id);
}
if(target.getLeft() != null)
{
return target.getLeft().search(id);
}
return null;
}
Проблема с моим кодом в том, что если правильный дочерний элемент существует, а val не найден, я получаю значение null
. (Не ищет слева). Как это решить?