public class Solution {
    public boolean IsBalanced_Solution(TreeNode root) {
        if(root == null) return true;
        int res = helpVerify(root);
        if(res == -1) return false;
        return true;
    }
    
    int helpVerify(TreeNode root){
        if(root == null) return 0;
        int left = helpVerify(root.left);
        if(left == -1) return -1;
        int right = helpVerify(root.right);
        if(right == -1 || Math.abs(left-right) > 1) return -1; 
        return Math.max(left,right)+1; 
    }
}
自底向上的进行判断:
如果中间发现了子树不是平衡的,那么就返回-1,减少后续的递归;