LeetCode

Balanced Binary Tree

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

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

Java

public class Solution {
    public boolean isBalanced(TreeNode root) {
        if(root == null) {
            return true;
        }

        return getBalanced(root) == -1 ? false : true;
    }

    public int getBalanced(TreeNode root) {
        if(root == null) {
            return 0;
        }

        int maxLft = getBalanced(root.left);
        int maxRgt = getBalanced(root.right);

        if(maxLft == -1 || maxRgt == -1) {
            return -1;
        }
        if(Math.abs(maxLft - maxRgt) > 1) {
            return -1;
        }
        return Math.max(maxLft, maxRgt) + 1; 
    }
}