实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。

示例 1:
给定二叉树 [3,9,20,null,null,15,7]

返回 true 。

示例 2:
给定二叉树 [1,2,2,3,3,null,null,4,4]

返回 false 。

Python 解答:

# 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:
        flag = True
        def height(root):
            if not root:
                return 0
            else:
                left = height(root.left)
                right = height(root.right)
                if abs(left-right) > 1:
                    nonlocal flag
                    flag = False
                return 1 + max(left, right)
        height(root)
        return flag
最后修改日期: 2021年4月26日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。