給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。
本題中,一棵高度平衡二叉樹定義為:
乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。
示例 1
:給定二叉樹 [3,
9,20,null,null,15,
7]3/ \
920/ \
157返回 true 。
示例 2
:給定二叉樹 [1,
2,2,
3,3,null,null,4,
4]1/ \
22/ \
33/ \ 44
返回 false 。
/**
* definition for a binary tree node.
* public class treenode
* }*/class
solution
}//主函式
public
boolean
isbalanced
(treenode root)
//這裡的單次執行過程具體如下:
//是否終止?->沒終止的話,判斷是否滿足不平衡的三個條件->返回值
public returnnode isbst
(treenode root)
//不平衡的情況有3種:左樹不平衡、右樹不平衡、左樹和右樹差的絕對值大於1
returnnode left =
isbst
(root.left)
; returnnode right =
isbst
(root.right);if
(left.isb ==
false
|| right.isb ==
false)if
(math.
abs(left.depth - right.depth)
>1)
//不滿足上面3種情況,說明平衡了,樹的深度為左右倆子樹最大深度+1
return
newreturnnode
(math.
max(left.depth, right.depth)+1
,true);
}}
110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 示例 2 給定二叉樹 1,2,2,3,3,null,n...
110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回 true 思路 注釋 private boolean isbala...
110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 示例 2 給定二叉樹 1,2,2,3,3,null,n...