我想实现AVL tree.I'm在高度方法stackOverFlow。我试着用少量的输入工作。然而,当我尝试大规模的投入,它暗恋。这是我的代码。AVL树高度方法StackOverFlow Erroe
private int height(Node<T> node){
if(!isEmpty() && node != null){
if(isleaf(node))
return 1;
else{
int p = height(node.left);
int q = height(node.right);
if(p > q)
return p + 1;
else
return q + 1;
}
}
return 0;
}
你确定树是否有效?另外,它是如何工作的?那里可能有一个递归循环。你可以发布堆栈跟踪,以便我们可以看到发生了什么? – templatetypedef
isEmpty是布尔方法,在线程“main”中返回root == null.Exception java.lang.StackOverflowError \t at ATree.height(ATree.java:35)// int p = height(node.left);在ATree.height(ATree.java:36)处的 。 // int q = height(node.right); – ifte