AVLツリーを実装しようとしています。高さメソッドで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;
}
ツリーが有効ですか?また、isEmptyはどのように機能しますか?そこに再帰サイクルがあるかもしれません。また、何が起こっているかを見るためにスタックトレースを投稿することはできますか? – templatetypedef
isEmpty is boolean method、戻り値root == null.Exceptionスレッド "main" 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