Binary Tree Level Order Traversal
来源:互联网 发布:软件卸载工具 编辑:程序博客网 时间:2024/06/06 13:23
Fair Binary Tree Level Order TraversalMy Submissions
30%
Accepted
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
Example
Given binary tree {3,9,20,#,#,15,7}
,
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
/** * 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: Level order a list of lists of integer */ public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) { ArrayList<ArrayList<Integer>> rst = new ArrayList<ArrayList<Integer>>(); if(root == null) { return rst; } ArrayList<Integer> level = new ArrayList<Integer>(); Queue<TreeNode> cur = new LinkedList<TreeNode>(); Queue<TreeNode> next = new LinkedList<TreeNode>(); cur.add(root); while (!cur.isEmpty()) { TreeNode temp = cur.poll(); level.add(temp.val); if (temp.left != null) { next.add(temp.left); } if (temp.right != null) { next.add(temp.right); } if(cur.isEmpty()) { rst.add(new ArrayList(level)); level = new ArrayList<Integer>(); if (!next.isEmpty()) { cur = next; next = new LinkedList<TreeNode>(); } } } return rst; }}
2. Use one queue, use a counter to record the number of nodes in each level
/** * 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: Level order a list of lists of integer */ public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) { ArrayList<ArrayList<Integer>> rst = new ArrayList<ArrayList<Integer>>(); if(root == null) { return rst; } ArrayList<Integer> level = new ArrayList<Integer>(); Queue<TreeNode> cur = new LinkedList<TreeNode>(); cur.add(root); while (!cur.isEmpty()) { int size = cur.size(); for(int i = 0; i < size; i++) { TreeNode temp = cur.poll(); level.add(temp.val); if (temp.left != null) { cur.add(temp.left); } if (temp.right != null) { cur.add(temp.right); } } rst.add(new ArrayList(level)); level = new ArrayList<Integer>(); } return rst; }}
0 0
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- java xml数据转换
- IDF 2014英特尔信息技术峰会
- C#字符串处理
- 图解TCP-IP协议
- 【大地幼教】大地幼教机构与你一起分享幼儿园的快乐点滴
- Binary Tree Level Order Traversal
- sdfsdfsdfsdfsdf
- 一般人都不知道的功能强大的超级搜索引擎!!!!
- 会计科目
- LVS工作总结之程序篇—ipvsadm
- sdfsdfsgxcvxcv
- 围绕物联网的宣传在过去的六周里得到了充分的展示,这可以从最新的公告以及来自ARM、Cisco、GE、IBM、Intel、PTC和其他商家的活动中看出。大部分的宣传都集中在节约大量资金的可能性上,因为最
- 物联网
- jQuery学习(一)----each遍历&&hasClass属性