Leetcode-Binary Tree Level Order Traversal
来源:互联网 发布:淘宝上水果能买吗 编辑:程序博客网 时间:2024/05/23 11:47
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For 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]]分析:二叉树的层次遍历,用队列实现
AC代码:
<pre name="code" class="java">import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;public class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> answerList = new ArrayList<List<Integer>>();Queue<TreeNode> q = new LinkedList<TreeNode>();TreeNode nextLevelStarter;q.add(root); if( root == null ) return answerList;while( !q.isEmpty() ){TreeNode currentNode = q.peek();nextLevelStarter = null;List<Integer> thisLevelList = new ArrayList<Integer>();//find nextLevelStartwhile( q.peek() != nextLevelStarter && q.isEmpty() == false ){currentNode = q.remove();if( nextLevelStarter == null ){if( currentNode.left != null )nextLevelStarter = currentNode.left;else if( currentNode.right != null )nextLevelStarter = currentNode.right;}//add to the thisLevelListthisLevelList.add(currentNode.val);if( currentNode.left != null )q.add(currentNode.left);if( currentNode.right != null )q.add(currentNode.right);}answerList.add(thisLevelList);}return answerList; }}
说明:
peek()函数:返回队列头但不删除队列头;
remove()函数:返回队列头并且删除队列头。
参考链接:
http://www.tuicool.com/articles/Evqyemf
0 0
- LeetCode[Tree]: Binary Tree Level Order Traversal
- *(leetcode) Binary Tree Level Order Traversal (tree)
- [leetcode][tree] Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal
- LeetCode: Binary Tree Zigzag Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal
- [LeetCode]Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- 互联网界神话——永远不要小看任何一个人
- jvm的参数含义及设置
- 关于项目管理的一点体会
- (转)WF4.0——开篇
- [网易]字符串回文分割
- Leetcode-Binary Tree Level Order Traversal
- Bootstrap分页插件--Bootstrap Paginator
- MySql弄死没得Innodb的 处理方法
- 计算机基本知识
- Test
- 在CLASSPATH中加载目录下所有的jar
- 中华两岸三地樟芝抗癌研究报告会8月30日在港举行
- UIFont字体设置
- RTP协议全解(H264码流和PS流)