LeetCode—二叉树的最大最小深度
2015-08-12 13:59
447 查看
1.二叉树的最大深度
这个题目就是求二叉树的高度,实现起来很容易。
代码如下:
2.二叉树的最小深度
思路:层次遍历,但遍历的当前节点左右孩子都为空,得到的最小深度即为当前节点的高度
代码如下:
这个题目就是求二叉树的高度,实现起来很容易。
代码如下:
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: The root of binary tree. * @return: An integer. */ public int maxDepth(TreeNode root) { if(root==null){ return 0; } return Math.max(maxDepth(root.left),maxDepth(root.right))+1; } }
2.二叉树的最小深度
思路:层次遍历,但遍历的当前节点左右孩子都为空,得到的最小深度即为当前节点的高度
代码如下:
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: The root of binary tree. * @return: An integer. */ public int minDepth(TreeNode root) { int height=0; Queue<TreeNode> queue=new LinkedList<>(); if(root!=null){ queue.add(root); height++; while(queue.size()>0){ int size=queue.size(); for(int i=0;i<size;i++){ TreeNode t=queue.poll(); if(t.left==null&&t.right==null){ return height; } if(t.left!=null){ queue.add(t.left); } if(t.right!=null){ queue.add(t.right); } } height++; } } return height; } }
相关文章推荐
- hdu 3571 Hotaru's problem || 2015 Multi-University Training Contest 7 (manacher算法)
- 查询自己电脑的IP
- 关于爬虫的一些看法
- 16个非常酷的jQuery插件
- PCA数据降维(Eigenfaces特征脸)
- CentOS---NFS安装、配置、使用
- 使用ThinkPHP框架快速搭建网站
- cisco NAT网络地址转换配置
- Pull解析器解析XML
- 黑马程序员——java开发中JDBC连接数据库的步骤
- 《Effictive C++》读书笔记(一)
- Vim配置说明
- fzu1873 Coin Puzzle
- js计算时间加减及有关时间大小的比较
- 用highcharts展现你的数据
- MySQL常用语句
- IOS--CALayer实现,界限、透明度、位置、旋转、缩放组合动画(转)
- Android ViewTreeObserver简介
- 开源控件ViewPagerIndicator的使用
- spaceship game in python