BinarySearchTree isBalanced方法不起作用

时间:2018-09-28 21:43:10

标签: java binary-search-tree

您好,这是我的isBalanced方法和适当的助手。

 public boolean isBalanced() {
      return isBalancedHelper(root);
  }

  public boolean isBalancedHelper(Node node) {
      if(node == null) {
          return true;
      }

      int heightDif = height(node.left) - height(node.right);
      if(Math.abs(heightDif) > 1) {
          return false;
      }
      else {
          return isBalancedHelper(node.left) && isBalancedHelper(node.right);
      }
  }

  public int height(Node node) {
      if(node == null) {
          return 0;
      }
      return 1 + Math.max(height(node.left), height(node.right));
  }

我没有测试失败,因为它在自动分级机中,但是输出消息说明了这一点。

当左子级非null且右空null时,isBalanced()返回true。

我已经看了一段时间了,无法弄清楚为什么它不起作用。有什么建议吗?

0 个答案:

没有答案