最小深度,看起来很简单,就是左右节点的深度最小值

定义一个函数,计算其深度

class Solution {
public int minDepth(TreeNode root) {
if(root == null)
{
return 0;
}
else if(root.left == null && root.right ==null)
{
return 1;
}
else
{
int left = Depth(root.left);
int right = Depth(root.right);
if(left > right)
{
return left;
}
else
{
return right;
}
}
}
public int Depth(TreeNode root)
{
if(root == null)
{
return 0;
}
else
{
int left = Depth(root.left);
int right = Depth(root.right);
if(left<right)
{
return left+1;
}
else
{
return right+1;
}
}
}
}

有错误在于,[1,2],只有一个节点,然后,该代码就会直接输出1,因为另一个没有节点,那么就直接是1

但实际上,应该是到叶子节点,不应该有叶子节点,而仍然只算根节点。

而且定义的函数其实和本函数类似,那么就可以直接迭代本函数,不需要另外定义。

class Solution {
public int minDepth(TreeNode root) {
if(root == null)
{
return 0;
}
else if(root.left == null && root.right ==null)
{
return 1;
}
else
{
int left = minDepth(root.left);
int right = minDepth(root.right);
if(left == 0 && right > 0)
{
return right+1;
}
else if(right == 0 && left > 0)
{
return left+1;
}
else if(left > right)
{
return right+1;
}
else
{
return left+1;
}
}
}
}

后面增加了上述情况,不会只算根节点。

LeetCode【111. 二叉树的最小深度】的更多相关文章

  1. Java实现 LeetCode 111 二叉树的最小深度

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

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

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

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

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

  4. 每日一题-——LeetCode(111)二叉树的最小深度

    题目描述: 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 思路一: 把每一层的结点加入到队列,每一层i+1,到下一层时,把上一层在队列中的结点都弹出,按从 ...

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

    使用深度优先搜索:时间复杂度O(n),空间复杂度O(logn) /** * Definition for a binary tree node. * struct TreeNode { * int v ...

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

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

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

    题目: 给定一个二叉树,找出其最小深度. 注意最小深度的定义! 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 一.递归法 时间复杂度:O(n).需要 ...

  8. Leecode刷题之旅-C语言/python-111二叉树的最小深度

    /* * @lc app=leetcode.cn id=111 lang=c * * [111] 二叉树的最小深度 * * https://leetcode-cn.com/problems/minim ...

  9. [LeetCode] Minimum Depth of Binary Tree 二叉树的最小深度

    Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...

随机推荐

  1. 利用arcgis和envi对卫星图像按城市进行拼接,分割

    1.首先在envi中打开多波段原素材,右键点击另存为TIFF,输入保存的路径将原素材转换为tif格式图片. 2.之后打开arcgis,导入全国地区界数据,点击工具栏中的筛选工具. 输入查找的范围以及匹 ...

  2. 【软件安装与环境配置】ubuntu16.04+caffe+nvidia+CUDA+cuDNN安装配置

    前言 博主想使用caffe框架进行深度学习相关网络的训练和测试,刚开始做,特此记录学习过程. 环境配置方面,博主以为最容易卡壳的是GPU的NVIDIA驱动的安装和CUDA的安装,前者尝试的都要吐了,可 ...

  3. i3wm菜单

    抛弃i3-dmenu-desktop吧,投入到 j4-demu-desktop 速度超快

  4. 关于charles抓不到js文件的问题

    在清理了cookies后重新家在页面, charles抓不到js文件. 后来在https://zhidao.baidu.com/question/1802495173294727507.html 看到 ...

  5. NSTimer应用

    NSTimer应用 在参与项目开发中遇到了NSTimer的应用,虽然我负责的模块内只用到了一小部分,但我觉得还是有必要拿出来好好琢磨一下. 一.概念(来自官方描述) 官网上最新的定义是“A timer ...

  6. POJ - 1681: Painter's Problem (开关问题-高斯消元)

    pro:开关问题,同上一题. 不过只要求输出最小的操作步数,无法完成输出“inf” sol:高斯消元的解对应的一组合法的最小操作步数. #include<bits/stdc++.h> #d ...

  7. UVA10562(看图写树,dfs)

    这个题过的好艰难,不过真的学到好多. 关于fgets的用法真的是精髓.!isspace(c)和c!=' '是有区别的. 其它的看代码吧 #include <iostream> #inclu ...

  8. slf4j的使用2

    一.Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行 ...

  9. Mabatis面试题

    Mybatis面试题 1请写出Mybatis核心配置文件MyBatis-config.xml的内容? <?xml version="1.0" encoding="U ...

  10. js中日期格式与时间戳格式互换

    2014-04-23 18:55:49:123    日期格式 1398250549123        时间戳格式 前台显示日期格式,则 function tsToTime(ts) { var da ...