- 每执行一遍左右以后就判断一次这个子节点是否是平衡二叉树
- 可能出现左边有数,右边无数的情况,所以要取最大值math.max()
- left/right是定义在递归过程当中
public class Solution {
boolean ans= true;
int cen=1;
public boolean IsBalanced_Solution(TreeNode root) {
if(root==null)
{
return ans;
}
int k=depth(root);
return ans;
}
int depth(TreeNode root)
{
if(root==null)
{return 0;}
int left=depth(root.left);
int right=depth(root.right);
//每执行一遍左右以后就判断一次这个子节点是否是平衡二叉树
if(Math.abs(left-right)>1)
{
ans=false;
}
//可能出现左边比右边多一个数的情况,所以要取最大值
return Math.max(left,right)+1;
}
}