给定一个二叉树,判断它是否是高度平衡的二叉树。
解决思路:递归
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isBalanced(TreeNode root) {
return dum(root)!=1;
}
public int dum(TreeNode root){
if(root ==null){
return 0;
}
int left=dum(root.left);
if(left==-1){
return -1;
}
int right=dum(root.right);
if(right==-1){
return -1;
}
return Math.abs(left-right)<2 ? Math.max(left,right)+1:-1;
}
}