剑指 Offer 32 - III. 从上到下打印二叉树 III class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>>(); Queue<TreeNode> myQueue = new LinkedList<>(); if(root != null) myQueue.add(root); while(!myQueue.isEmpty()){ LinkedList<Integer> tmp = new LinkedList<Integer>(); for(int i = myQueue.size(); i > 0; i--){ TreeNode node = myQueue.poll(); System.out.print(res.size() + " "); if(res.size()%2 == 0){ System.out.print(" 0 "); tmp.addLast(node.val); } else { System.out.print(" 1 "); tmp.addFirst(node.val); } if(node.left != null){ myQueue.add(node.left); } if(node.right != null){ myQueue.add(node.right); } System.out.println(" "); } res.add(tmp); } // res.removeAll(Collections.singleton(new ArrayList<Integer>())); 删除集合中的空元素 return res; } }