93 平衡二叉樹 回顧

2022-02-14 21:23:26 字數 1538 閱讀 8963

中文english

給定乙個二叉樹,確定它是高度平衡的。對於這個問題,一棵高度平衡的二叉樹的定義是:一棵二叉樹中每個節點的兩個子樹的深度相差不會超過1。 

樣例  1:

輸入: tree =

輸出: true

樣例解釋:

如下,是乙個平衡的二叉樹。

1 / \

2 3

樣例 2:

輸入: tree =

輸出: true

樣例解釋:

如下,是乙個平衡的二叉樹。

3 / \

9 20

/ \

15 7

樣例 2:

輸入: tree =

輸出: false

樣例解釋:

如下,是乙個不平衡的二叉樹。1的左右子樹高度差2

1 \

2

/ \

3 4

輸入測試資料 (每行乙個引數)如何理解測試資料?

分治法

"""

definition of treenode:

class

treenode:

def __init__(self, val):

self.val =val

self.left, self.right =none, none

"""class

solution:

"""@param root: the root of binary tree.

@return: true

ifthis binary tree is balanced, or false

.

"""def isbalanced(self, root):

# write your code here

ifnot root:

return

true

#分治法

ifnot self.isbalanced(root.left):

return

false

ifnot self.isbalanced(root.right):

return

false

return abs(self.getmaxheight(root.left) - self.getmaxheight(root.right)) <= 1

#返回最大高度,當前節點

def getmaxheight(self, root):

ifnot root:

return

0return max(self.getmaxheight(root.left), self.getmaxheight(root.right)) + 1

93 平衡二叉樹

給定乙個二叉樹,確定它是高度平衡的。對於這個問題,一棵高度平衡的二叉樹的定義是 一棵二叉樹中每個節點的兩個子樹的深度相差不會超過1。樣例 1 輸入 tree 輸出 true 樣例解釋 如下,是乙個平衡的二叉樹。1 2 3 樣例 2 輸入 tree 輸出 true 樣例解釋 如下,是乙個平衡的二叉樹。...

lintcode 93 平衡二叉樹

給定乙個二叉樹,確定它是高度平衡的。對於這個問題,一棵高度平衡的二叉樹的定義是 一棵二叉樹中每個節點的兩個子樹的深度相差不會超過1。您在真實的面試中是否遇到過這個題?yes 樣例 給出二叉樹 a b 二叉樹a是高度平衡的二叉樹,但是b不是 標籤分治法 遞迴 思路 採用遞迴的方式,判斷某個結點的平衡因...

lintcode 93 平衡二叉樹

平衡二叉樹 給定乙個二叉樹,確定它是高度平衡的。對於這個問題,一棵高度平衡的二叉樹的定義是 一棵二叉樹中每個節點的兩個子樹的深度相差不會超過1。您在真實的面試中是否遇到過這個題?yes樣例給出二叉樹 a b a 3 b 3 9 20 20 15 7 15 7二叉樹a是高度平衡的二叉樹,但是b不是 標...