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

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

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

示例:

给定二叉树 [3,9,20,null,null,15,7],

3
   / \
  9  20
    /  \
   15   7
返回它的最小深度  2.

思路:见代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public int minDepth(TreeNode root) {if(root == null) return 0;//左孩子和有孩子都为空的情况,说明到达了叶子节点,返回1if(root.left == null && root.right == null) return 1;//左孩子和由孩子其中一个为空,返回较大深度        int m1 = minDepth(root.left);int m2 = minDepth(root.right);//其中一个节点为空,说明有一个必为0,所以可以返回m1 + m2 + 1;if(root.left == null || root.right == null) return m1 + m2 + 1;//左右孩子都不为空,返回最小深度+1return Math.min(m1,m2) + 1; }
}

leetcode111. 二叉树的最小深度相关推荐

  1. leetcode111. 二叉树的最小深度(队列)

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

  2. Leetcode-111 二叉树的最小深度(递归)

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

  3. leetcode111. 二叉树的最小深度(层序遍历10)

    一:题目 二:上码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* Tre ...

  4. 49 - 算法 - Leetcode-111 -二叉树的最小深度 -递归循环

    //树除了 递归 还有 循环 左右比较 class Solution {public:int minDepth(TreeNode* root) {queue<TreeNode*> temq ...

  5. 【每日一算法】二叉树的最小深度

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

  6. 二叉树-二叉树的最小深度(递归法)

    题意: 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 思路: 这里使用递归的方法,找二叉树的最小深度 1.先判断根节点是否为空,是返回0: 2.调用函数遍 ...

  7. 《剑指offer》求二叉树的最小深度(非递归法)

    题目:求二叉树的最小深度(实际上该题来自leetcode) 解析:递归法简单些,下面演示下非递归.无外乎层次遍历二叉树了,思想是用current记录当前层的节点数,next记录下一层的节点数,用队列保 ...

  8. c#二叉树 取叶子节点个数_二叉树的最小深度+完全二叉树的节点个数

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

  9. 数据结构——二叉树的最小深度算法

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

最新文章

  1. 如何对batch的数据求Gram矩阵
  2. 教你如何定位及优化SQL语句的性能问题
  3. 该如何高效实用Kotlin?看这一篇就够了!
  4. 【POJ - 3616】Milking Time (贪心+dp)
  5. char*转wstring
  6. mysql 数据库的维护,优化
  7. html推荐网站,20个经典bootsrtap后台html网站模板推荐
  8. Vray材质速查手册(精讲)
  9. 酒店客房管理系统(C语言)
  10. 用MATLAB仿真DSB调制
  11. 一些学习编程的优质网站
  12. android指南针Demo,谁有安卓简易指南针的DEmo
  13. html5文字跳动特效,jQuery网页文字跳动动画特效
  14. mfc入门基础(四)对话框添加控件、创建对话框类和为对话框控件添加变量
  15. 从飞思卡尔到NXP,经久不衰的i.MX系列产品背后的“成功学”
  16. DDD浮夸,Eric Evans开了个坏头
  17. springboot+VUE整合websocket
  18. openssh服务和iptabels、firewalld防火墙
  19. 第一章、stc89c52单片机控制LED
  20. [转] 杜比的音效生意

热门文章

  1. 安装Linux后windows在哪启动,在Linux下安装windows后解决Linux不能启动能问题
  2. x210-II WinCE启动10s,还可继续优化
  3. 凤凰os linux界面,让deepin linux系统与凤凰os共用个人目录的方法
  4. 【转】DPDK(一):专业术语
  5. 【转】C++ 存储类
  6. 【转】1.1异步编程:线程概述及使用
  7. Azure Blob Storage 基本用法 -- Azure Storage 之 Blob
  8. ASP.NET Core管道深度剖析(3):管道是如何处理HTTP请求的?
  9. JAVA使用ByteArrayOutputStream、ByteArrayInputStream将对象序列化反序列化,通过JAVA socket实现对象在网络中传输
  10. 【Python CheckiO 题解】Sun Angle