标签:null als none tree node etc nod ini 判断 超过
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点?的左右两个子树的高度差的绝对值不超过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
标签:null als none tree node etc nod ini 判断 超过
原文地址:https://www.cnblogs.com/sandy-t/p/13287685.html