import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param root TreeNode类 * @return int整型ArrayList<ArrayList<>> */ public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) { // write code here ArrayList<ArrayList<Integer>> levelOrder = new ArrayList<>(); if (root == null) return levelOrder; Queue<TreeNode> queue = new LinkedList<>(); queue.add(root); while (!queue.isEmpty()) { Queue<TreeNode> children = new LinkedList<>(); ArrayList<Integer> temp = new ArrayList<>(); while (!queue.isEmpty()) { temp.add(queue.peek().val); if (queue.peek().left != null) { children.add(queue.peek().left); } if (queue.peek().right != null) { children.add(queue.peek().right); } queue.poll(); } levelOrder.add(temp); while (!children.isEmpty()) { queue.add(children.poll()); } } return levelOrder; } }