/**
* 1. 题目非常简单,刚开始还想着有没有什么更好的方法。不过很快就觉得递归就是最快的。10分钟就写好了,一次通过。
* 2. 1ms,击败99.76%; 40MB,击败27.34%;
*
*/
class Solution {
public boolean isBalanced(TreeNode root) {
if(isBalancedHelp(root) < 0){
return false;
}
return true;
}
public int isBalancedHelp(TreeNode root){
if(root == null){
return 0;
}
int leftNumber = isBalancedHelp(root.left);
int rightNumber = isBalancedHelp(root.right);
if(leftNumber < 0 || rightNumber < 0){
return -1;
}
if(Math.abs(leftNumber-rightNumber)>1){
return -1;
}
return Math.max(leftNumber + 1, rightNumber+1);
}
}