递归做法:

这道题最好结合树的深度那道题做。
二叉树深度
在树的深度中,我们已经得到了一个求解树的深度的递归函数。
在本题中,我们可以设一个boolean值,在递归求解深度的函数中,顺便加上一个判断:即若左子树和右子树的高度相差大于1,则不平衡,布尔值变为false

boolean flag = true;
public boolean IsBalanced_Solution(TreeNode root) {
    if (root == null) {
        return true;
    }
    dfs(root);
    return flag;
}


private int dfs(TreeNode root) {
    if (root == null) {
        return 0;
    }
    int left = dfs(root.left);
    int right = dfs(root.right);
    if (Math.abs(left - right) > 1) {
        flag = false;
    }
    return 1 + Math.max(left, right);
}