Я пытаюсь реализовать метод высоты дерева двоичного поиска.
Но входной параметр должен быть только String. Я знаю, как это сделать, когда входным параметром является класс узла. Но я не мог понять это с заданным значением типа String.
public int height(E e) {
int nodeHeight=-1;
if(root==null)
{
return nodeHeight;
}
if(e.equals(root.element))
{
return nodeHeight+1;
}
else
return 1+Math.max(height(root.left.element), height(root.right.element));
Например. там должны быть имена некоторых людей, которые хранятся в двоичном дереве. Когда я называю высоту (Джимми). методы должны сказать мне, какова высота Джимми в этом текущем двоичном дереве. Кстати, входным параметром может быть только String.
edit: я пытаюсь реализовать другой способ получить высоту
public int height(E e)
{
int nodeHeight=-1;
TreeNode<E> current=root;
if(root==null)
{
return nodeHeight;
}
if(current.element==e)
{
return nodeHeight+1;
}
else if(e.compareTo(current.element)>0)
{
current=current.right;
nodeHeight=height(current.element);
}
else if(e.compareTo(current.element)<0)
{
current=current.left;
nodeHeight=height(current.element);
}
return nodeHeight;
} // (end height)
но я получаю ошибку StackOverFlow.