题目大意:打印二叉树的层序遍历。
法一:见116的利用队列的层序遍历法的第二种解法。代码如下(耗时3ms):

1 public List<List<Integer>> levelOrder(TreeNode root) { 2 List<List<Integer>> res = new ArrayList<List<Integer>>(); 3 if(root == null) { 4 return res; 5 } 6 Queue<TreeNode> q = new LinkedList<TreeNode>(); 7 q.offer(root); 8 while(!q.isEmpty()) { 9 int cnt = q.size(); 10 List<Integer> listLevel = new ArrayList<Integer>(); 11 for(int i = 0; i < cnt; i++) { 12 TreeNode tmp = q.poll(); 13 listLevel.add(tmp.val); 14 if(tmp.left != null) { 15 q.offer(tmp.left); 16 } 17 if(tmp.right != null) { 18 q.offer(tmp.right); 19 } 20 } 21 res.add(new ArrayList<Integer>(listLevel)); 22 } 23 return res; 24 }