class Solution {
public boolean isBalanced(TreeNode root) {
int ans = getAns(root);
return ans == -1?false : true;
}
//只考虑一层
public int getAns (TreeNode root) {
if (root == null) return 0;//遍历到空节点 返回值肯定为0
int left_len = getAns(root.left);//求子结点的高度
if (left_len == -1) return -1;
int right_len = getAns(root.right);
if (right_len == -1) return -1;
if(Math.abs(left_len - right_len) > 1) {
return -1;
}
return Math.max(left_len+1,right_len+1);//返回根节点的高度
}
}
递归 我尼玛 老子卷土重来了 记住只考虑一层逻辑 不要人脑压栈


