Leetcode做题日记:110. 平衡二叉树(PYTHON)

给定一个二叉树,判断它是否是高度平衡的二叉树。

本题中,一棵高度平衡二叉树定义为:

一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过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 。

第一次的代码:
直接递归,同时返回bool变量,只要有一颗子树不满足要求(即左右子树高度差大于1),返回False

		def r(l):
            if not l :#若root为None,True
                return 1,True
            dl,li=r(l.left)
            dr,ri=r(l.right)
            #若左右子树满足要求,且左右子树深度满足要求
            if li and ri and abs(dl-dr)<=1:
                return 1+max(dl,dr),True
            else:# return 任意数,False
                return 1+max(dl,dr),False
        deep,t=r(root)
        return t

80ms,排名92%

你可能感兴趣的:(leetcode,Leetcode)