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

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

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

示例 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

递归解法

# 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 0if not root.left and not root.right:return 1min_depth=10**9if root.left:min_depth=min(self.minDepth(root.left),min_depth)if root.right:min_depth=min(self.minDepth(root.right),min_depth)return min_depth+1

[leetcode]111.二叉树的最小深度相关推荐

  1. Leetcode 111.二叉树的最小深度

    Time: 20190901 Type: Easy 题目描述 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: ...

  2. [LeetCode 111] - 二叉树的最小深度 (Minimum Depth of Binary Tree)

    问题 给出一棵二叉树,找出它的最小深度. 最小深度是指从根节点沿着最短路径下降到最近的叶子节点所经过的节点数. 初始思路 不难看出又是一个需要层次遍历二叉树的题目,只要在112基础上作出简单修改即可得 ...

  3. LeetCode 111二叉树的最小深度-简单

    给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明:叶子节点是指没有子节点的节点. 示例 1: 输入:root = [3,9,20,null,null,1 ...

  4. leetcode - 111. 二叉树的最小深度

    给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15,7], ...

  5. LeetCode 111 二叉树的最小深度

    给定二叉树,求最小深度 思路 1.递归 求根节点的左子树和右子树的最小深度 1.当只有一个根节点时,深度为1 2.当根节点为空时,深度为0 3.当根节点不为空时, (1) 当左子树 或 右子树为空时, ...

  6. leetcode 111. 二叉树的最小深度

    题目 思路 递归解法,思路直接看注释吧~ 注意对于最小深度定义,有一个小坑,下面这棵树的结果应该是2,而不是1,为此我专门加了一个判断: 如果根部只有一个孩子,则另一侧深度恒为1.此时,应取有孩子的那 ...

  7. 【Leetcode】111. 二叉树的最小深度

    一.题目 1.题目描述 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明:叶子节点是指没有子节点的节点. 示例1: 输入:root = [3,9,20, ...

  8. 111. 二叉树的最小深度 golang

    111. 二叉树的最小深度 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,nu ...

  9. LeetCode解析------111. 二叉树的最小深度-深度优先搜索

    题目: 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15 ...

最新文章

  1. 25%的游戏通过Steam支持Linux系统
  2. linq调用mysql函数_如何为linq对象制作一个展平函数(Linq To Entities for mysql)?
  3. 概念区分:并行、分布式、集群、云、超算
  4. 使用redis来实现分布式锁
  5. 【另类见解】那些要保证缓存和数据库数据一致性的最后怎么了?
  6. 【OpenCV 例程200篇】89. 带阻滤波器的传递函数
  7. 飞聊不可 · 上海技术招聘专场
  8. k均值的损失函数_机器学习:手撕 cross-entropy 损失函数
  9. Method-Swizzling 方法交换
  10. irving - 初学python
  11. routing-controllers工作原理解析
  12. ORACLE安全加固篇
  13. 为什么建模要尽量用四边面?如何将三边面转化成四边面?
  14. 计算机器设备重置成本时不应计入的费用是,自考《资产评估00158》章节试题:第3章...
  15. 如何离线安装所有依赖包
  16. 2013NET笔试题及答案
  17. 【ECCV2022】OSFormer: One-Stage Camouflaged Instance Segmentation with Transformers
  18. 三自由度无人机飞手培训、PID调试、飞行教学、飞控算法验证、故障仿真平台
  19. 【2021】07 建模
  20. 《计算机网络》课程教学大纲

热门文章

  1. Kafka分区分配策略(2)——RoundRobinAssignor和StickyAssignor
  2. LiveVideoStackCon 2021 音视频技术大会北京站 延期通告
  3. 章琦:能坚持的唯一的原因就是兴趣
  4. 从 bug 中学习:六大开源项目告诉你 go 并发编程的那些坑
  5. 2019腾讯科学WE大会:在小宇宙里看见大宇宙的轮廓
  6. FFMPEG使用参数详解
  7. Python机器学习Numpy, Scipy, Pandas, Scikit-learn, Matplotlib, Keras, NN速查手册
  8. Ubuntu增加一个用户并给普通用户赋予root权限的方法
  9. JAVA程序设计----多线程(上)
  10. leetcode 764. Largest Plus Sign | 764. 最大加号标志(Java)