class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res=new ArrayList<List<Integer>>(); if(root==null) return res; Queue<TreeNode> queue=new LinkedList<TreeNode>(); queue.add(root); queue.add(null); List<Integer> list=new ArrayList<Integer>(); while(!queue.isEmpty()) { TreeNode node=queue.poll(); if(node==null) { res.add(new ArrayList<Integer>(list)); if(!queue.isEmpty()) queue.add(node); list.clear(); } else { list.add(node.val); if(node.left!=null) queue.add(node.left); if(node.right!=null) queue.add(node.right); } } return res; } }