力扣刷题——111.二叉树的最小深度

111.二叉树的最小深度

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明:叶子节点是指没有子节点的节点。

示例 1:

输入:root = [3,9,20,null,null,15,7]

输出:2

示例 2:

输入:root = [2,null,3,null,4,null,5,null,6]

输出:5

提示:

树中节点数的范围在 [0, 105] 内

-1000 <= Node.val <= 1000

实现代码(Python):

python 复制代码
from collections import deque
# 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: Optional[TreeNode]) -> int:
        if not root:
            return 0
        queue=deque([root])
        #res=[]
        height=0
        h=1000000

        while queue:
            #level=[]
            size=len(queue)
            height+=1
            for _ in range(size):
                #level.append(queue.popleft())
                node=queue.popleft()
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
                if not node.left and not node.right:
                    if height<h:
                        h=height
            #res.append(level)
        return h
        

分析

在层序遍历的基础上实现,或者可通过前中后序遍历实现

相关推荐
小李子呢021111 小时前
前端八股6---v-model双向绑定
前端·javascript·算法
XH华12 小时前
数据结构第九章:树的学习(下)
数据结构·学习
He少年12 小时前
【基础知识、Skill、Rules和MCP案例介绍】
java·前端·python
AI_Claude_code12 小时前
ZLibrary访问困境方案四:利用Cloudflare Workers等边缘计算实现访问
javascript·人工智能·爬虫·python·网络爬虫·边缘计算·爬山算法
jedi-knight12 小时前
AGI时代下的青年教师与学术民主化
人工智能·python·agi
迷藏49412 小时前
**eBPF实战进阶:从零构建网络流量监控与过滤系统**在现代云原生架构中,**网络可观测性**和**安全隔离**已成为
java·网络·python·云原生·架构
迷藏49412 小时前
**发散创新:基于Solid协议的Web3.0去中心化身份认证系统实战解析**在Web3.
java·python·web3·去中心化·区块链
2301_8227032012 小时前
Flutter 框架跨平台鸿蒙开发 - 创意声音合成器应用
算法·flutter·华为·harmonyos·鸿蒙
cmpxr_13 小时前
【C】数组名、函数名的特殊
c语言·算法