博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode | Minimum Depth of Binary Tree
阅读量:4485 次
发布时间:2019-06-08

本文共 1035 字,大约阅读时间需要 3 分钟。

 

Given a binary tree, find its minimum depth.

The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */
//注意题目给出的二叉树深度的概念:根节点到“叶子”节点的路径长。//对{root!=null, left=right=null}的单节点树,其深度为1 [注:也有教材把单节点树的深度定义为0,leetcode定义为1,否则不accepted]//在求最小深度时,要避免那些只有单个子节点的节点的干扰,因为其为null的子节点会返回0,在取小比较时可能造成其为叶子节点的假象//而在求最大深度时,单个子节点为空的非叶子节点不会干扰到结果,因为其返回的0在比较大小取大时会被淘汰,从而间接证明其非叶子节点public class Solution {    public int minDepth(TreeNode root) {        if (root == null) return 0;                int minleft = minDepth(root.left);        int minright = minDepth(root.right);                if(minleft == 0) return minright+1;  //左子节点为null,则其不是叶子节点,只是深度路径上的中间点而已        if(minright == 0) return minleft+1;                int depth = minleft<=minright?minleft:minright;        return depth+1;    }}

 

 

 

转载于:https://www.cnblogs.com/dosmile/p/6444483.html

你可能感兴趣的文章
C语言程序结构
查看>>
linux 设置固定IP centOS6.5
查看>>
Java 重写(Override)与重载(Overload) (转子Runood)
查看>>
Linux常用命令总结
查看>>
飞扬的小鸟(NOIP2014)(丧病DP题)
查看>>
UITableView 的使用小点
查看>>
SpringBoot项目在新电脑上的配置运行,包括JDK+MAVEN+Git+SpringBoot配置等
查看>>
bzoj 3754: Tree之最小方差树 模拟退火+随机三分
查看>>
基于JavaMail的Java邮件发送:简单邮件发送
查看>>
那些年,我追过的绘图工具
查看>>
单例实现方式
查看>>
04 Python并发编程(守护进程,进程锁,进程队列)
查看>>
win7下安装fedora16
查看>>
ffmpeg视频压缩与分割
查看>>
解决&quot;VC6.0的ClassView里不能显示类或成员变量&quot;问题
查看>>
解决Ueditor在bootstarp 模态框中全屏问题
查看>>
POJ 1006 Biorhythms
查看>>
dubbo+zookeeper注册服务报错问题:No service registed on zookeeper
查看>>
极验滑动验证登录
查看>>
求多个数的质因子
查看>>