LeetCode 110 平衡二叉樹

2021-08-21 22:20:38 字數 1550 閱讀 9676

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

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

乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。

示例 1:

給定二叉樹[3,9,20,null,null,15,7]

3

/ \9 20

/ \

15 7

返回true

示例 2:

給定二叉樹[1,2,2,3,3,null,null,4,4]

1

/ \2 2

/ \3 3

/ \4 4

返回false

#!/usr/bin/python3

# -*- coding: utf-8 -*-

# @time: 2018/7/31

# @author: xfli

# the file...

class treenode(object):

def __init__(self, val=none, left=none, right=none):

self.val = val

self.lchild = left

self.rchild = right

def isbalanced(root):

""":type root: treenode

:rtype: bool

"""if root is none:

return true

left_deep = getdeepth(root.lchild)

right_deep = getdeepth(root.rchild)

if abs(right_deep - left_deep) > 1:

return false

return isbalanced(root.lchild) and isbalanced(root.rchild)

def getdeepth(root): # 獲取二叉樹深度

if root is none:

return 0

left_deep = getdeepth(root.lchild)

right_deep = getdeepth(root.rchild)

return max(left_deep, right_deep) + 1

if __name__ == '__main__':

root = treenode(val=1, left=treenode(2, left=treenode(3), right=treenode(4)),

right=treenode(2, left=treenode(3), right=treenode(4)))

result = isbalanced(root)

print(result)

leetcode 110 平衡二叉樹 平衡二叉樹

leetcode 110 平衡二叉樹 平衡二叉樹要求所有節點的左右子樹的高度差小於1,因此,只需在遍歷的時候返回其左右子樹的深度。definition for a binary tree node.public class treenode treenode int val treenode int...

LeetCode110 平衡二叉樹

給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回true。示例 2 給定二叉樹 1,2,2,3,3,null,nul...

LeetCode 110 平衡二叉樹

給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 示例 2 給定二叉樹 1,2,2,3,3,null,n...