题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
public class Solution {
private boolean isBanlanced = true;
public boolean IsBalanced_Solution(TreeNode root) {
IsBalanced_depth(root);
return isBanlanced;
}
public int IsBalanced_depth(TreeNode root){
if(root==null) return 0;
int left = IsBalanced_depth(root.left);
int right = IsBalanced_depth(root.right);
int depth = Math.abs(left-right);
if(depth>1)
isBanlanced = false;
return Math.max(left,right)+1;
}
}
思路:本道题目是树的最大深度的延伸,树中任意节点的左右子树的深度差相差超过1,则该树势不平衡的,因此,根据树的深度拿到题目的解法,只需要判断左右子树的深度是否大于1,大于1则返回false