题目

思路

递归解法,思路直接看注释吧~

注意对于最小深度定义,有一个小坑,下面这棵树的结果应该是2,而不是1,为此我专门加了一个判断:
如果根部只有一个孩子,则另一侧深度恒为1。此时,应取有孩子的那一侧的深度!

题解

// Definition for a binary tree node.
class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}
}class Solution {public int minDepth(TreeNode root) {if (root != null) {if (root.left == null || root.right == null) {//根部只有一个孩子,则另一侧深度恒为1。此时应取有孩子一侧的深度return Math.max(getMinDepth(root.left, 1), getMinDepth(root.right, 1));} else {//根部有两个孩子,取两侧最小深度即可return Math.min(getMinDepth(root.left, 1), getMinDepth(root.right, 1));}} elsereturn 0;}public int getMinDepth(TreeNode node, int dep) {if (node != null) {if (node.left != null && node.right != null) {//有两个孩子,取较小深度return Math.min(getMinDepth(node.left, dep + 1), getMinDepth(node.right, dep + 1));} else if (node.left != null || node.right != null) { //只有一个孩子,取较大深度return Math.max(getMinDepth(node.left, dep + 1), getMinDepth(node.right, dep + 1));} else {//没有孩子,则是叶子节点return dep + 1;}} else return dep;}
}

前两次提交被坑了

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二叉树的最小深度-简单

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

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

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

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

    给定二叉树,求最小深度 思路 1.递归 求根节点的左子树和右子树的最小深度 1.当只有一个根节点时,深度为1 2.当根节点为空时,深度为0 3.当根节点不为空时, (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. Jquery前端分页插件pagination同步加载和异步加载
  2. cryptojs php 互通_关于PHP7和CryptoJS的AES加密方式互通
  3. svn服务器如何导入导出文件,如何导入svn dump备份文件或源代码文件?
  4. mysql 线性表_数据结构-线性表之顺序表
  5. 离线安装pymysql和dbutils
  6. jQuery中的join方法
  7. FR切换sheet时隐藏参数面板
  8. struts2拦截器实现登录限制
  9. 是否还为制作PPT而烦恼?珍藏的PPT实用网站打包送给你!
  10. 台式计算机如何组装,怎样组装基本台式机
  11. ArduinoUNO实战-第一章-LED闪烁实验
  12. [bigdata-56] py3+selenium 抓取学信网 最简demo
  13. 2022年医院三基考试药师(中医临床)考试模拟试题卷及答案
  14. java手风琴代码_JavaScript实现手风琴效果
  15. 《理想藏书》书籍推荐
  16. ios 移动社交 app 的demo 附:图文展示,客户端+服务器端源码
  17. 联想拯救者Y7000P鼠标卡顿问题(已解决)
  18. 概率图模型(马尔可夫模型)
  19. 奥维奥:新零售下,家具家居该如何乘风破浪?
  20. [学习经验] 考研经验略谈

热门文章

  1. 2019ICPC(南昌) - Fire-Fighting Hero(最短路+思维)
  2. 2019ICPC(南京) - Holy Grail(最短路)
  3. 回溯算法-03八皇后问题
  4. navicat创建数据库后显示图标灰色,右键后无法新建数据库
  5. router vue 动态改变url_vue动态路由
  6. 八进制小数转化为十进制小数
  7. 网狐棋牌游戏平台服务器架构设计分析
  8. API---有意思的API
  9. 一定要牢牢掌握的技术!Spark+Flink+推荐系统+数据挖掘等
  10. Java集合框架:LinkedHashMap