【LeetCode】104. Maximum Depth of Binary Tree
来源:互联网 发布:钢琴淘宝 编辑:程序博客网 时间:2024/04/30 01:35
Question:
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.
Solution:
My solution:3ms
/** * 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) { int maxDepth = 0; List<TreeNode> list = new ArrayList<TreeNode>(); if(null != root){ list.add(root); } while(list.size() > 0){ list = getChildren(list); maxDepth++; } return maxDepth; } public List<TreeNode> getChildren(List<TreeNode> parents){ List<TreeNode> children = new ArrayList<TreeNode>(); Iterator iter = parents.iterator(); while(iter.hasNext()){ TreeNode node = (TreeNode)iter.next(); if(null != node.right){ children.add(node.right); } if(null != node.left){ children.add(node.left); } } parents.clear(); parents = null; return children; }}
Net solution 1: 1ms
In my opinion, this solution is in deed a simple and quick method, but the recursion has potential problem for Exception of ‘StackOverFlow’.
public class Solution { public int maxDepth(TreeNode root) { if(root==null) return 0; int l = maxDepth(root.left); int r = maxDepth(root.right); if(l>r) return l+1; return r+1; }}
Net solution 2: 3ms
This method gives me a new idea of using Deque;
public int maxDepth(TreeNode root) { if (root == null) return 0; Deque<TreeNode> stack = new LinkedList<TreeNode>(); stack.push(root); int count = 0; while (!stack.isEmpty()) { int size = stack.size(); while (size-- > 0) { TreeNode cur = stack.pop(); if (cur.left != null) stack.addLast(cur.left); if (cur.right != null) stack.addLast(cur.right); } count++; } return count;}
0 0
- [LeetCode]104.Maximum Depth of Binary Tree
- 【LeetCode】104.Maximum Depth of Binary Tree
- [Leetcode] 104. Maximum Depth of Binary Tree
- LeetCode --- 104. Maximum Depth of Binary Tree
- LeetCode 104. Maximum Depth of Binary Tree
- leetCode 104. Maximum Depth of Binary Tree
- 104. Maximum Depth of Binary Tree LeetCode
- 104. Maximum Depth of Binary Tree LeetCode
- LeetCode 104. Maximum Depth of Binary Tree
- leetcode:104. Maximum Depth of Binary Tree
- LeetCode 104. Maximum Depth of Binary Tree
- [LeetCode]104. Maximum Depth of Binary Tree
- leetcode 104. Maximum Depth of Binary Tree
- LeetCode 104. Maximum Depth of Binary Tree
- 【LeetCode】104. Maximum Depth of Binary Tree
- LeetCode#104. Maximum Depth of Binary Tree
- Leetcode 104. Maximum Depth of Binary Tree
- LeetCode *** 104. Maximum Depth of Binary Tree
- 多字文本android:ellipsize属性不正常工作的解决办法
- 结构体,联合和枚举
- Android6.0的处理 转载
- sizeof的用法
- 【Android进阶】文本切换器(TextSwitcher)的功能与用法(自动切换仿京东淘宝快报效果)
- 【LeetCode】104. Maximum Depth of Binary Tree
- Unity新项目如何快速理清顶层代码结构
- firefox和chrome的开发者工具使用技巧
- Java对象序列化之 transient 使用小记
- text-overflow:ellipsis的巧妙运用
- 各种盒模型
- c++第一次实验 圆的半径
- 安装Windows和Ubuntu双系统
- poj 1155 TELE