Я пытаюсь написать метод, который возвращает глубину целевой int в двоичном дереве поиска. Сейчас он работает на несколько небольших деревьев, но не всегда. Кто-нибудь видит, где я могу ошибаться?Поиск узла в двоичном дереве поиска в java?
static int count=1;
public static int findDepth(TreeNode<Integer> root, int target)
// pre: 0 or more elements in the tree, integer to search for
// post: return depth of target if found, -1 otherwise
{
count++;
if (root!=null)
{
if (root.getValue()<target)
{
if (root.getValue()==target)
{System.out.println(count);
return count;}
else
{findDepth(root.getLeft(), target);
count--;
findDepth(root.getRight(), target);
}
}
else if (root.getValue()>target)
{
if (root.getValue()==target)
{System.out.println(count);
return count;}
else
{findDepth(root.getLeft(), target);
count--;
findDepth(root.getRight(), target);
}
}
else if (root.getValue()==target)
return 1;
else
return -1;
}
return count;
}
Является ли это бинарное дерево или дерево двоичного поиска? –
Двоичное дерево поиска –