中文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不是 標...