劍指offer -- 平衡二叉樹
阿新 • • 發佈:2019-01-26
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
如果一棵樹是平衡二叉樹則返回該樹的高度,否則返回-1
對於一棵樹只要判斷其左右子樹均為平衡二叉樹且高度相差不超過1則為平衡二叉樹
public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
int h = getDepth(root);
boolean res = h == -1 ? false : true ;
return res;
}
private int getDepth (TreeNode root){
if( root == null) return 0;
int left = getDepth(root.left);
if(left == -1) return -1;
int right = getDepth(root.right);
if(right == -1 || Math.abs(left-right) > 1)
return -1;
else return Math.max(left, right) + 1;
}
}