牛客網刷題之平衡二叉樹
阿新 • • 發佈:2019-02-13
題目描述:
解題思路:
首先要知道平衡二叉樹的特點:它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。那麼,如果數不為空的話,我們樂意分別遞迴求出左右子樹的高度,如果大於1就返回false,否則就返回true。
題解:
boolean isBalance = true;
public boolean IsBalanced_Solution(TreeNode root) {
getDeep(root);
return isBalance;
}
public int getDeep (TreeNode root) {
if(root == null){
return 0;
}
int leftDeep = getDeep(root.left);
int rightDeep = getDeep(root.right);
if(Math.abs(leftDeep-rightDeep) > 1){
isBalance = false;
}
return Math.max(leftDeep, rightDeep) + 1 ;
}