【Leetcode-Java】102. Binary Tree Level Order Traversal
来源:互联网 发布:爱上学软件下载 编辑:程序博客网 时间:2024/05/01 07:51
1.原题
链接:https://leetcode.com/problems/binary-tree-level-order-traversal/
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,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
2.题目大意
从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序。
3.解题思路
这是一道广度搜索的题。首先从树的根结点出发,为了能打印该根结点的两个子结点,则在遍历根结点的时候,先把子结点保存到容器中,因为输出为从左到右,则可利用队列的先进先出性质,按左结点、右结点的顺序存入,也按左结点、右结点的顺序取出。因此,打印的规律为:每次打印一个结点时,如果该结点有子结点,则把子结点放入队列的末尾。再依次从队列的头部取出最早进入队列的结点,重复打印操作。
4.代码实现
public List<List<Integer>> levelOrder(TreeNode root) {
Queue<TreeNode> queue=new LinkedList<>();
List<List<Integer>> res=new LinkedList<>();
if(root==null ) return res;
queue.offer(root);
while(!queue.isEmpty()){
int size=queue.size();
List<Integer> sub=new LinkedList<>();
for(int i=0;i<size;i++){
if(queue.peek().left!=null) queue.offer(queue.peek().left);
if(queue.peek().right!=null) queue.offer(queue.peek().right);
sub.add(queue.poll().val);
}
res.add(sub);
}
return res;
}
- [Leetcode] Binary Tree Level Order Traversal (Java)
- Binary Tree Level Order Traversal LeetCode Java
- [LeetCode][Java] Binary Tree Level Order Traversal
- leetcode:Binary Tree Level Order Traversal 【Java】
- LeetCode 102. Binary Tree Level Order Traversal
- [LeetCode]102.Binary Tree Level Order Traversal
- [Leetcode] 102. Binary Tree Level Order Traversal
- LeetCode --- 102. Binary Tree Level Order Traversal
- [leetcode] 102.Binary Tree Level Order Traversal
- 【leetcode】102. Binary Tree Level Order Traversal
- Leetcode 102. Binary Tree Level Order Traversal
- 102. Binary Tree Level Order Traversal LeetCode
- [leetcode] 102. Binary Tree Level Order Traversal
- Leetcode 102. Binary Tree Level Order Traversal
- LeetCode *** 102. Binary Tree Level Order Traversal
- LeetCode 102. Binary Tree Level Order Traversal
- LeetCode 102. Binary Tree Level Order Traversal
- leetcode-102. Binary Tree Level Order Traversal
- Think in JAVA中“被检查的异常”的理解
- nginx 限速功能
- windows7 Scrapy安装详细教程
- Android编程权威指南(第二版)学习笔记(二十四)—— 第24章 Looper、Handler 和 HandlerThread
- Spark性能优化:数据倾斜调优
- 【Leetcode-Java】102. Binary Tree Level Order Traversal
- moquitto安装遇到的问题
- FullCalendar控件的使用
- 粒子群算法
- Docker常见命令
- 分布式全局不重复ID生成算法
- C代码的coredump
- linux设备驱动归纳总结(三):4.ioctl的实现
- RNN学习