39. Leetcode 110. 平衡二叉树 (二叉树-二叉树性质)
生活随笔
收集整理的這篇文章主要介紹了
39. Leetcode 110. 平衡二叉树 (二叉树-二叉树性质)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為:一個二叉樹每個節(jié)點(diǎn)?的左右兩個子樹的高度差的絕對值不超過 1 。示例 1:輸入:root = [3,9,20,null,null,15,7]
輸出:true
示例 2:輸入:root = [1,2,2,3,3,null,null,4,4]
輸出:false
示例 3:輸入:root = []
輸出:true# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def isBalanced(self, root: TreeNode) -> bool:if self.depth(root) == -1:return Falseelse:return Truedef depth(self,root):if root == None:return 0depth_left = self.depth(root.left)if depth_left == -1:return -1depth_right = self.depth(root.right)if depth_right == -1:return -1if abs(depth_right - depth_left) <= 1:return 1 + max(depth_left, depth_right)else:return -1# 方法二# def isBalanced(self, root: TreeNode) -> bool:# if root == None:# return True# if abs(self.depth(root.left) - self.depth(root.right)) <= 1:# return self.isBalanced(root.left) and self.isBalanced(root.right)# else:# return False# def depth(self, root):# if root == None:# return 0# if root.left == None and root.right == None:# return 1# if root.left != None or root.right != None:# return 1 + max(self.depth(root.left), self.depth(root.right))
總結(jié)
以上是生活随笔為你收集整理的39. Leetcode 110. 平衡二叉树 (二叉树-二叉树性质)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 38. Leetcode 101. 对称
- 下一篇: 41. Leetcode 662. 二叉