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,减少后续的递归;

京公网安备 11010502036488号