Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
平衡二叉树定义:左右子树深度差<=1且左右子树都是平衡二叉树
思路:
1.求每个树的深度(递归思想)
2.根据平衡二叉树定义判定深度差,递归判断左右子树是否满足平衡
public boolean isBalanced(TreeNode root) {
if(root==null){
return true;
}
return Math.abs(maxDepth(root.left)-maxDepth(root.right))<=1&&isBalanced(root.left)&&isBalanced(root.right);
}
public int maxDepth(TreeNode node){
if(node==null){
return 0;
}
return 1+Math.max(maxDepth(node.left),maxDepth(node.right));
}