LeetCode 110. 平衡二叉树
Posted 机器狗mo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 110. 平衡二叉树相关的知识,希望对你有一定的参考价值。
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点?的左右两个子树的高度差的绝对值不超过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 。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isBalanced(self, root: TreeNode) -> bool:
height,isBalanced = self.solver(root)
return isBalanced
def solver(self,root):
if root is None:
return 0,True
left_height,left_isBalanced = self.solver(root.left)
right_height,right_isBalanced = self.solver(root.right)
height = max(left_height,right_height)+1
if left_isBalanced is False or right_isBalanced is False or (left_height - right_height)**2 > 1:
return height,False
else:
return height,True
以上是关于LeetCode 110. 平衡二叉树的主要内容,如果未能解决你的问题,请参考以下文章