当前位置: 代码迷 >> 综合 >> 模拟卷Leetcode【剑指 Offer】Offer_55 - II. 平衡二叉树
  详细解决方案

模拟卷Leetcode【剑指 Offer】Offer_55 - II. 平衡二叉树

热度:63   发布时间:2023-09-26 20:07:31.0

Offer_day18_55 - II. 平衡二叉树

输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过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 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ping-heng-er-cha-shu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

代码:

from leetcode_python.utils import *class Solution:def __init__(self):passdef maxDepth(self, root: TreeNode) -> int:if not root:return 0return 1+max(self.maxDepth(root.left),self.maxDepth(root.right))def isBalanced(self, root: TreeNode) -> bool:if not root:return Trueelif abs(self.maxDepth(root.left)-self.maxDepth(root.right))>1:return Falseelse:return self.isBalanced(root.left) and self.isBalanced(root.right)def test(data_test):s = Solution()return s.isBalanced(*data_test)def test_obj(data_test):result = [None]obj = Solution(*data_test[1][0])for fun, data in zip(data_test[0][1::], data_test[1][1::]):if data:res = obj.__getattribute__(fun)(*data)else:res = obj.__getattribute__(fun)()result.append(res)return resultif __name__ == '__main__':datas = [[],]for data_test in datas:t0 = time.time()print('-' * 50)print('input:', data_test)print('output:', test(data_test))print(f'use time:{
      time.time() - t0}s')

备注:
GitHub:https://github.com/monijuan/leetcode_python

CSDN汇总:模拟卷Leetcode 题解汇总_卷子的博客-CSDN博客

可以加QQ群交流:1092754609

leetcode_python.utils详见汇总页说明
先刷的题,之后用脚本生成的blog,如果有错请留言,我看到了会修改的!谢谢!