zoukankan      html  css  js  c++  java
  • [Leetcode]@python 110. Balanced Binary Tree

    题目链接

    https://leetcode.com/problems/balanced-binary-tree/

    题目原文

    Given a binary tree, determine if it is height-balanced.

    For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

    题目大意

    给定一棵二叉树,判断这棵树是否平衡二叉树(任意左右子树的高度差小于等于1)

    解题思路

    借用求书高度的函数,递归求解

    代码

    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def maxDepth(self, root):
            """
            :type root: TreeNode
            :rtype: int
            """
            if root == None:
                return 0
            else:
                return max(self.maxDepth(root.left) + 1, self.maxDepth(root.right) + 1)
    
        def isBalanced(self, root):
            """
            :type root: TreeNode
            :rtype: bool
            """
            if root == None:
                return True
            if abs(self.maxDepth(root.left) - self.maxDepth(root.right)) <= 1:
                return self.isBalanced(root.left) and self.isBalanced(root.right)
            else:
                return False
            
    
  • 相关阅读:
    Java注解
    java反射简单入门
    java泛型反射
    BeanUtils.populate的作用
    适配器模式
    原型模式
    抽象工厂模式
    工厂方法模式
    建造者模式
    单例模式
  • 原文地址:https://www.cnblogs.com/slurm/p/5262685.html
Copyright © 2011-2022 走看看