java - AVL树高度方法堆栈溢出错误

标签 java

我正在尝试实现 AVL 树。我正在使用 stackOverFlow on height 方法。我尝试用少量的输入它可以工作。然而,当我尝试大规模输入时,它崩溃了。这是我的代码。

   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;
}

最佳答案

如果您的树具有循环引用,则可能会发生这种情况。检查树的构造。调试 - 分配唯一值并在遍历节点时进行打印。

关于java - AVL树高度方法堆栈溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580986/

相关文章:

java - 是否有适用于 Android 的良好 yaml 库?

java - 使用 SharedPreferences 获得离线高分 - Android (java)

java - 如何打印最大到用户输入的整数的素数?

java - ThrowableInformation getThrowableStrRep() 的作用是什么?

java - 如何使用 Powermock、easymock、mockito 进行单元测试 DriverManager.getConnection ("") 或 DriverManager.getConnection ("","","") 调用

java - 除非线程池中的两个asyctask执行完毕后继续处理

java - ConcurrentHashMap 上的竞争条件问题

java - OpenJPA 语法错误 : Encountered "optimize"

Java swing print() 用法

java - 将数据类型从 C 映射到 Java