zoukankan      html  css  js  c++  java
  • 【leetcode】111:二叉树的最小深度

    本题目如下:

     这题目和二叉树的最大深度的题目有异曲同工之妙,代码如下:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def minDepth(self, root: TreeNode) -> int:if not root:
                return 0
            if not root.left and not root.right:
                return 1
    
            min_depth = 10**10
            if root.left:
                min_depth = min(min_depth, self.minDepth(root.left)) #得到左子树的最小深度
            if root.right:
                min_depth = min(min_depth, self.minDepth(root.right)) #得到右子树的最小深度
            return min_depth+1

    求解最大深度的代码:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def maxDepth(self, root: TreeNode) -> int:
            if root==None:
                return 0
            return 1+max(self.maxDepth(root.left),self.maxDepth(root.right))

    一定要区分开这两者之间的不同。

  • 相关阅读:
    构建之法阅读笔记04
    团队项目
    构建之法阅读笔记03
    第6周学习进度
    求最大子数组03
    四则运算4(完结)
    第5周学习进度
    敏捷开发概述
    第4周学习进度
    构建之法阅读笔记01
  • 原文地址:https://www.cnblogs.com/geeksongs/p/15404416.html
Copyright © 2011-2022 走看看