zoukankan      html  css  js  c++  java
  • 力扣104题 最大最小深度

    寻找树的最大最小深度。

    '''
    树的最大深度
    树的最小深度
    '''
    import collections
    class TreeNode:
        def __init__(self,x):
            self.val = x
            self.left = None
            self.right = None
    class Solution:
        def maxdepth_cursion(self,root):                                    #采用递归的方式
            if not root:return 0                                            #直接返回左右子树最大的层数,并加上当前层
            return 1 + max(self.maxdepth_cursion(root.left),self.maxdepth_cursion(root.right))
        def mindepth(self,root):
            if not root:return 0                                            #如果根节点为空,直接返回0
            if not root.left:return 1+self.mindepth(root.right)             #如果左节点为空,则结果是右节点的最小值+1
            if not root.right:return 1+self.mindepth(root.left)             #如果右节点为空,则结果是左节点的最小值+1
            return 1+min(self.mindepth(root.left),self.mindepth(root.right))#如果左右子节点都存在,则返回两个的最小值+1
    if __name__ == '__main__':
        solution = Solution()
        root = TreeNode(3)                                                  #构建一棵树
        l = TreeNode(9)
        r = TreeNode(20)
        root.left = l
        root.right = r
        rl = TreeNode(15)
        rr = TreeNode(20)
        r.left = rl
        r.right = rr
        maxDepthResult = solution.maxdepth_cursion(root)
        print('maxDepthResult:',maxDepthResult)
        minDepthResult = solution.mindepth(root)
        print('minDepthResult:',minDepthResult)
  • 相关阅读:
    webstorm 自定义代码模板
    HTML5 manifest ApplicationCache
    WebStorm 快捷键收藏
    函数内巧用注释实现多行文本拼接
    图片剪裁上传插件
    将json转为复杂url参数
    CSS3实现半像素边框
    打造自己的3D全景漫游
    自适应rem布局
    header页头内容整理
  • 原文地址:https://www.cnblogs.com/missidiot/p/11447206.html
Copyright © 2011-2022 走看看