劍指offer—平衡二叉樹
阿新 • • 發佈:2019-01-23
題目描述
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
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