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

注意求的是根节点到叶子节点的最短路径上的节点数量。想到用递归的思想。
递归结束条件:
叶子结点的定义是左孩子和右孩子都为null。
当root节点左右孩子都为空时,返回1。
当root节点左右孩子有一个为空时,返回不为空的孩子节点的深度。
当root节点左右孩子都不为空时,返回左右孩子较小的深度的节点值。
public int minDepth(TreeNode root) {
if (root == null)
return 0;
if (root.left==null && root.right==null)
return 1;
int m1 = minDepth(root.left);
int m2 = minDepth(root.right);
if (root.left == null || root.right == null)
return m1+m2+1;
return Math.min(m1, m2) + 1;
}
智能推荐
leetcode 111. 二叉树的最小深度
题目 思路 递归解法,思路直接看注释吧~ 注意对于最小深度定义,有一个小坑,下面这棵树的结果应该是2,而不是1,为此我专门加了一个判断: 如果根部只有一个孩子,则另一侧深度恒为1。此时,应取有孩子的那一侧的深度! 题解 前两次提交被坑了...
LeetCode——111. 二叉树的最小深度
题目描述: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 提示: 树中节点数的范围在 [0, 105] 内 -1000 <= Node.val <= 1000 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root = [2,null,3,n...
Java LeetCode 111. 二叉树的最小深度
给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 广度优先遍历,把每一行的节点挨个处理...
猜你喜欢
raw&assets&sdcard读取mp3文件的方式
Raw方式 assets SDcard 首先需要添加 静态请求权限 动态请求 playMnt的播放方法 如何在模拟器中添加音乐 详细代码参见 点击跳转...
微信小程序封装请求方法wx.request(OBJECT)
小程序写完也一段时间了,最近分享下装逼的技能吧,封装请求方法,不但高大上,而且使用简单。先说说小程序自带的请求吧! wx.request(OBJECT) 参数: 参数名 类型 必填 默认值 说明 url String 是 开发者服务器接口地址 data Object/String/ArrayBuffer 否 请求的参数 header Object 否 设置请求的 header,header 中不能...
【并行计算-CUDA开发】【视频开发】ffmpeg Nvidia硬件加速总结
2017年5月25日 0. 概述 FFmpeg可通过Nvidia的GPU进行加速,其中高层接口是通过Video Codec SDK来实现GPU资源的调用。Video Codec SDK包含完整的的高性能工具、源码及文档,支持,可以运行在Windows和Linux系统之上。从软件上来说,SDK包含两类硬件加速接口,用于编码加速的NVENCODE API和用于解码加速的NVDECODE API(之前被...
HTML简介及部分常用标签
一、HTML简介 1)HTML简介 HTML是⽤于创建⽹⻚的语⾔。我们通过使⽤HTML标记标签创建html⽂档来创建⽹⻚。 HTML代表超⽂ 本标记语⾔。 HTML是⼀种标记语⾔,它具有标记标签的集合。 HTML标签是由尖括号括起来的词,如 , 。标签通常成对出现,例如 和 。 ⼀对中的第⼀个标签是开始标签;第⼆个标签是结束标签。在上⾯的示例中, 是开始标签,⽽ 是结束标签。 我们还可以将开始标签...
05:最大值和最小值的差
原题链接 总时间限制: 1000ms 内存限制: 65536kB 描述 输出一个整数序列中最大的数和最小的数的差。 输入 第一行为M,表示整数个数,整数个数不会大于10000; 第二行为M个整数,以空格隔开,每个整数的绝对值不会大于10000。 输出 输出M个数中最大值和最小值的差。 样例输入 样例输出 源码...
