题目描述,给你一棵二叉树,判断它是不是平衡二叉树
思路:平衡二叉树是左右子树高度差不超过1的二叉树,且根节点的左右子树也都是平衡二叉树,那么可以以此递归,判断每个子平衡二叉树是否成立,也就是要获得当前节点为根节点的左右子树的高度,然后判断他们高度差是否不大于1。只要不符合,则不是平衡二叉树
java程序:
public class Solution {
//全局变量,判断是否为平衡二叉树
public boolean IsBalanced_Solution(TreeNode root) {
getDepth(root);
return res;
}
public int getDepth(TreeNode root){
if(root==null)
return 0;
int left = getDepth(root.left);
int right = getDepth(root.right);
//比较左右子树高度
if(Math.abs(left-right)>1)
res=false;
//返回当前根节点数的高度
}
}