110 平衡二叉樹

2021-10-07 06:30:39 字數 2691 閱讀 2390

面試題55 - ii. 平衡二叉樹

110. 平衡二叉樹

樹的深度 = max(左子樹的深度, 右子樹的深度) + 1

首先判斷左子樹是不是平衡二叉樹,然後判斷右子樹是不是平衡二叉樹,最後確定自己是不是平衡二叉樹。

上面的解法在判斷的每乙個節點是否是二叉樹的時候,都要遞迴求一遍它的高度。

我們並不需要求每乙個樹的高度,只要有乙個節點的左右子樹高度差不滿足條件就直接退出即可

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

helper

(root)

;return flag;

}private

inthelper

(treenode root)

int left =

helper

(root.left)

;int right =

helper

(root.right);if

(math.

abs(left- right)

>1)

return math.

max(left, right)+1;}}

只看根節點是不行的

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...