110 平衡二叉樹

2021-09-29 13:48:54 字數 1159 閱讀 4014

給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。

本題中,一棵高度平衡二叉樹定義為:

乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過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...