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 ofevery node never differ by more than 1.

---

 

/**
 * 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) {
        
        int rst = helper(root);
        return rst != -1;
        
    }
    
    private int helper(TreeNode node){
        
        if(node == null)    return 0;
        
        int left = helper(node.left);
        if(left == -1)  return -1;
        
        int right = helper(node.right);
        if(right == -1) return -1;
        
        int diff = Math.abs(left-right);
        if(diff > 1)
            return -1;
        else
            return Math.max(left, right) + 1;
        
    }
}

 

posted @ 2013-09-23 03:32  LEDYC  阅读(169)  评论(0)    收藏  举报