110. 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.

 

Subscribe to see which companies asked this question

Hide Tags
 Tree Depth-first Search
Hide Similar Problems
 (E) Maximum Depth of Binary Tree
 
/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public boolean isBalanced(TreeNode root) {
        if (depth(root) == -1) 
            return false;
        return true;
    }
    
    private int depth(TreeNode root) {
        if (root == null) 
            return 0;
        int left = depth(root.left);
        int right = depth(root.right);
        // If any subtree fails, all parent nodes should fail. No need to calculate depth.
        if (left == -1 || right == -1 || Math.abs(left-right) > 1) 
            return -1;
        return Math.max(left,right)+1;
    }
}

 

 

 
posted @ 2016-03-12 14:29  新一代的天皇巨星  阅读(173)  评论(0)    收藏  举报