題目描述
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
解析思路
上一篇劍指的題目是求二叉樹深度,而這一題就是求左右子樹的高度差絕對值是否大於1。
所以我們在上一篇的基礎上加入了一個Math.abs()後判斷是否大於1就ok了。
Math.abs()是返回數的絕對值。
運行代碼
public class Solution {
private boolean isBalanced = true;
public boolean IsBalanced_Solution(TreeNode root) {
TreeDepth(root);
return isBalanced;
}
private int TreeDepth(TreeNode root){
if(root == null){
return 0;
}
int left = TreeDepth(root.left);
int right = TreeDepth(root.right);
if(Math.abs(left - right) > 1){
isBalanced = false;
}
int max = Math.max(left,right)+1;
return max;
}
}