题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。
思路:根据平衡二叉树的定义,左右子树的高度差不大于1。
public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
if(root == null)
return true;
if(Math.abs(getHeight(root.left) - getHeight(root.right))> 1)
return false;
else
return IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right);
}
private int getHeight(TreeNode root){
if(root == null)
return 0;
return Math.max(getHeight(root.left),getHeight(root.right))+1;
}
}