描述
本题要求判断给定的二叉树是否是平衡二叉树
平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1。
一颗树的高度指的是树的根节点到所有节点的距离中的最大值。
示例1
输入:
{1,#,2,#,3}
返回值:
false
示例2
输入:
{2,1,3}
返回值:
true
递归算法 public class Solution {
public boolean isBalanced(TreeNode root) {
if(root==null)
return true;
int left=treeDepth(root.left);
int right=treeDepth(root.right);
if(Math.abs(left-right)<=1)
if (isBalanced(root.left) && isBalanced(root.right) )
return true;
return false;
}
private int treeDepth(TreeNode root){
if(root==null)
return 0;
if(root.left==null&&root.right==null)
return 1;
return Math.max(treeDepth(root.left),treeDepth(root.right))+1;
}
}