Balanced Binary Tree

Given a binary tree, determine if it is height-balanced.

  • Time: O(N)
  • Space: O(1)
public boolean isBalanced(TreeNode root) {
    if (getHeight(root) == -1) {
        return false;
    } else {
        return true;
    }
}

private int getHeight(TreeNode root) {
    if (root == null) {
        return 0;
    }
    int leftHeight = getHeight(root.left);
    if (leftHeight == -1) {
        return -1;
    }
    int rightHeight = getHeight(root.right);
    if (rightHeight == -1) {
        return -1;
    }
    if (Math.abs(leftHeight - rightHeight) > 1) {
        return -1;
    } else {
        return Math.max(leftHeight, rightHeight) + 1;
    }
}

results matching ""

    No results matching ""