从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:
 给定二叉树: [3,9,20,null,null,15,7],
    3
    / \
   9  20
     /  \
    15   7
 返回其层次遍历结果:
[
   [3],
   [9,20],
   [15,7]
 ]
  
提示:
节点总数 <= 1000
代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> result = new ArrayList<List<Integer>>();
List<Integer> list = new ArrayList<Integer>();
Deque<TreeNode> deque = new LinkedList<>();
if(root==null) return result;
TreeNode flag = root;
deque.offer(root);
while(!deque.isEmpty())
{
TreeNode p = deque.poll();
list.add(p.val);
if(p.left!=null)
{
deque.offer(p.left);
}
if(p.right!=null)
{
deque.offer(p.right);
}
if(flag==p)
{
flag = deque.peekLast();
result.add(list);
list = new ArrayList<>();
}
}
return result;
}
}