• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

111. Minimum Depth of Binary Tree(二叉树最小深度)

leetcode admin 8个月前 (03-28) 433次浏览 0个评论 扫描二维码
Given a binary tree, find its minimum depth.

The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

Note: A leaf is a node with no children.

Example:

Given binary tree [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

return its minimum depth = 2.

解法:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def minDepth(self, root: TreeNode) -> int:
        if not root:
            return 0
        def depth(node):
            if not node:
                return 0
            left=depth(node.left)
            right=depth(node.right)
            if left==0 or right==0:
                return left+right+1
            else:
                return min(left,right)+1
        return depth(root)

解释:

当左右子节点深度其中一个为 0 的时候,那么此时的深度由另外一边的深度+1 来代替

if left==0 or right==0: return left+right+1

这个写法兼容两种情况,毕竟任何一个变量为 0 的时候就是相当于另外一个节点的深度+1

除此之外的情况就是当两个节点的深度都不为 0 的时候那么就是二者的最小值+1


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明111. Minimum Depth of Binary Tree(二叉树最小深度)
喜欢 (0)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!