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

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

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;
}
}
}
}

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

最新文章

  1. html常用标签介绍
  2. wsdl地址如何在远程服务器上查看源码?
  3. Android Studio通过JNI调用NDK程序
  4. 使用tomcat作为web应用容器时,启用新线程找不到Session的问题
  5. html5_canvas-记忆力卡片游戏
  6. leetcode第六题 ZigZag Conversion (java)
  7. Oracle 汉字在不同字符集下所占字节
  8. Host和Server的开发
  9. MAC上安装mysql及workbench
  10. HDFS的java api操作
  11. Win7系统修改hosts无法保存怎么办?
  12. redis connection refused: connect 启动失败
  13. form表单获取多选的值
  14. ARM 编译产生.map之RO RW ZI
  15. 微信小程序:java后台获取openId
  16. DNS协议详解
  17. JavaEE-学习目录
  18. URAL 1995 Illegal spices 贪心构造
  19. [BZOJ1003](ZJOI 2006) 物流运输trans
  20. SpringBoot 加载配置文件

热门文章

  1. ossfs 使用挂在到ecs -centos 6.8
  2. c#中的Cache缓存技术
  3. 2PC(Two Phase Commitment Protocol)原理
  4. python-django-01
  5. org.springframework.orm.hibernate3.HibernateSystemException:
  6. idea 启动 springBoot debug很慢,正常启动很快是什么原因
  7. git 恢复本地误删文件
  8. js中数组常用方法总结
  9. 增加删除的js
  10. 函数模板前template语句的位置