LeetCode111. 二叉树的最小深度_吃西瓜要吐米米的博客-程序员宝宝

技术标签: 二叉树深度  LeetCode题解  leetcode  

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

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

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

示例:

给定二叉树 [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(null==root){
            return 0;
        }
        ArrayDeque<TreeNode> queue=new ArrayDeque<TreeNode>();
        queue.add(root);
        int min=0;
        while(!queue.isEmpty()){
            int size=queue.size();
           int flag=0;
            for(int i=0;i<size;i++){
                TreeNode node=queue.removeFirst();
                if(null==node.left&&null==node.right){//找到叶子结点
                    flag=1;
                }
                if(null!=node.left){
                    queue.add(node.left);
                }
                if(null!=node.right){
                    queue.add(node.right);
                }
            }
            min++;
            if(flag!=0){
                break;
            }
        }
        return min;
    }
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40550726/article/details/82960327

智能推荐

OSG学习:纹理映射(一)——多重纹理映射_路人甲JIA的博客-程序员宝宝_多视角纹理映射

以下内容来自: 1、《OpenSceneGraph三维渲染引擎编程指南》肖鹏 刘更代 徐明亮 清华大学出版社 2、《OpenSceneGraph三维渲染引擎设计与实践》王锐 钱学雷 清华大学出版社3、自己的总结 下载完整工程OSG_9_TextureMultiple创建C++项目后,首先需要配置OSG环境,具体步骤看OSG学习:WIN10系统下OSG+VS2017编译...

XML文件转义字符的处理_IceCreHaker的博客-程序员宝宝_xml报文怎么处理转义字符

问题描述:使用XML文件时,需要获取一串ID号,例如 “PCI\VEN_1969&DEV_1090&CC_0200”,作为元素属性,结构示例为 在Notepad++里面设置为XML方式显示,发现有点些不对,保存在IE里面打开,报错。查到错误原因,是&符号需要使用转义字符,整理汇总下处理方式一、使用转义字符,如下表字符Xml转义字符(替换用)

zookeeper入门简介_chudian7792的博客-程序员宝宝

1、安装(Linux,集群,3台机器)zookeeper依赖java环境,首先安装jdk,至少需要1.6版本下载zookeeper,进入zookeeper/conf目录,拷贝zoo_sample.cfg,重命名为zoo.cfg,配置如下# The number of millisec...

如何用crontab每隔1分钟执行一个命令行脚本,shell设定时任务_asnn0208的博客-程序员宝宝_脚本中定时一分钟命令

执行shell脚本在crontab -e中设置(注意:在公司使用非root权限的,路径也写全路径)*/1 * * * * sh /home/start.sh记得修改为可执行文件chmod 777 start.sh使用教程:crontab 格式 *  *  *  *  *XXX        分 时 天 月 ...

学习日记(IDEA 2019 下载安装、用 IDEA 编写 Hello, World)_Sun 3285的博客-程序员宝宝_idea2019下载

学习日记一、IDEA 2019 下载安装进入官网下载 IDEA 安装包(点此进入 IDEA 官网),有旗舰版(30天免费试用)和社区版,可自行选择。本文介绍 IDEA 2019 旗舰版安装步骤,IDEA 2019 旗舰版安装包下载链接在本文最后。打开安装包,如下所示,有4个文件,点击 ideaIU-2019.1.exe 将 IDEA 下载到电脑的指定位置,安装依照步骤进行。**特别注意:**进行到如图所示的这一步时,选择 64-bit launcher 和 .java。打开安装包的 Ho

源码包netkit-ftp-0.17.tar.gz编译_sunshineywz的博客-程序员宝宝

源码包netkit-ftp-0.17.tar.gz编译,步骤如下:1、tar解压2、打补丁patch -p1&lt; netkit-ftp-0.17-cross.patch在源码目录下,建立上述名字的补丁文件,内容如下:diff -Naur netkit-ftp-0.17.orig/configure netkit-ftp-0.17/configure--- netkit-ftp-0....

随便推点

arm linux内核移植_蜗牛up的博客-程序员宝宝_arm-linux内核移植开发

(一).配置交叉编译工具arm-linux-gcc不编译在make zImage时会出现"arm-linux-gcc:Command not found"下面讲解配置方法1.tar -xvfj EABI - 4.3.3_EmbebSky_20100610.tar.bz2 -C /opt/Embedsky/(其中,EABI - 4.3.3_EmbebSky_20100610.

谷粒商城-商品服务API-查询-递归树形结构数据获取_小小学渣的博客-程序员宝宝

1、新建服务接口:在CategoryService中新建接口方法listWithTreepublic interface CategoryService extends IService&lt;CategoryEntity&gt; { PageUtils queryPage(Map&lt;String, Object&gt; params); List&lt;CategoryEntity&gt; listWithTree();}2、 实现服务接口:com/wang/gulima.

vsftpd配置笔记_潇洒人生的博客-程序员宝宝

实验环境CentOS7、vsftpd3.0.2创建两个账号fanyc1、fanyc2 1,登录账号限制:结论1:ftpusers为黑名单,只要存在只这里的用户,都登录不了结论2:user_list为白名单,如下配置后,不在ftpusers中但是在user_list中的用户可以登录# vsftpd.confuserlist_enable=YESuserlist_de...

c语言求同时被3和7,c语言输入一个数 判断该数能否同时被3和7整除 如果能整除 则输出yes..._weixin_39555415的博客-程序员宝宝

输入1个整数,判断该数是奇数还是偶数.(用C语言编程)#includevoidmain(){intn;printf("输入一个整数:");scanf("%d",&amp;n);if(n%2==0){printf("%d是偶数\n",n);}else{printf求解c语言中 输入一个正整数,判断该数是奇数还是偶数.#includevoidmain(){intn;&amp;c语言...

安装qemu的步骤以及注意事项_「已注销」的博客-程序员宝宝

<br />关于QEMU的安装步骤及其中注意的地方:<br />步骤:<br />1)下载qemu<br />2)解压,命令为:tar zxvf qemu-0.12.4.tar.gz<br />3)转到qemu目录中,命令为:cd qemu-0.12.4<br />4)配置,命令:./configure<br />5)编译,命令为:make<br />6)安装,命令为:make install<br /><br />注意事项:<br />在configure之前安装几个助

DES加密、解密字符串算法(java版)_分布式编程的博客-程序员宝宝

 package siyue;import java.security.Key;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import sun.misc.BASE64Decoder;import sun.misc.BA

推荐文章

热门文章

相关标签