#111 Minimum Depth of Binary Tree & #104 Maximum Depth of Binary Tree
2015-05-31 11:58
405 查看
#111 Minimum Depth of Binary
题目:
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.
题解:
我用的递归解法。
还有一种BFS的解法,用的迭代。网上找的程序:http://blog.csdn.net/sbitswc/article/details/26526031。
#104 Maximum Depth of Binary Tree
题目:
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
题解:
题目:
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 a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public int minDepth(TreeNode root) { if(root == null)return 0; if(root.left == null)return minDepth(root.right)+1; if(root.right == null)return minDepth(root.left)+1; return Math.min(minDepth(root.left),minDepth(root.right))+1; } }
还有一种BFS的解法,用的迭代。网上找的程序:http://blog.csdn.net/sbitswc/article/details/26526031。
public int minDepthBFS(TreeNode root){ if(root == null) return 0; ArrayList<TreeNode> last = new ArrayList<TreeNode>(); last.add(root); int count =1; while(!last.isEmpty()){ ArrayList<TreeNode> cur = new ArrayList<TreeNode>(); for (TreeNode treeNode : last) { if(treeNode.left == null && treeNode.right == null) return count; if(treeNode.left != null) cur.add(treeNode.left); if(treeNode.right != null) cur.add(treeNode.right); } count++; last = new ArrayList<TreeNode>(cur); } return count; }
#104 Maximum Depth of Binary Tree
题目:
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
题解:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public int maxDepth(TreeNode root) { if(root == null)return 0; return Math.max(maxDepth(root.left),maxDepth(root.right))+1; } }
相关文章推荐
- 子类继承父类,但是每个子类又不能全部拥有基类的属性
- css 动画类库Animate.css
- 第十三周项目二——立体类族共有的抽象类
- HDU5242.Game——贪心
- 1050 循环数组最大子段和
- (大数据之flume)Flume(NG)架构设计要点及配置实践
- 微软100题(45)几道雅虎面试题
- myeclipse 8.5 序列号
- 2015百度之星初赛(1)题解(1001)
- spark streaming测试之二使用网络数据源
- Searching: Open Addressing With Double Hashing
- Java Reflection - Dynamic Class Loading and Reloading
- Java Reflection - Arrays
- Java Reflection - Generics
- close
- (5/18)重学Standford_iOS7开发_视图控制器生命周期_课程笔记
- SQL语句之Group By&Having&where
- HDU 5246 超级赛亚ACMer(百度之星初赛第一题)
- Java Reflection - Dynamic Proxies
- Java Reflection - Annotations