import java.util.ArrayList;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/import java.util.*;public class Solution { ArrayList> Print(TreeNode pRoot) { ArrayList > arrayList = new ArrayList >(); if(pRoot == null){ return arrayList; } Queue q1 = new LinkedList (); q1.add(pRoot); Queue q2 = new LinkedList (); while(!q1.isEmpty() || !q2.isEmpty()){ if(!q1.isEmpty()){ ArrayList list = new ArrayList (); while(!q1.isEmpty()){ TreeNode node = q1.poll(); list.add(node.val); if(node.left != null){ q2.add(node.left); } if(node.right != null){ q2.add(node.right); } } arrayList.add(list); }else{ ArrayList list = new ArrayList (); while(!q2.isEmpty()){ TreeNode node = q2.poll(); list.add(node.val); if(node.left != null){ q1.add(node.left); } if(node.right != null){ q1.add(node.right); } } arrayList.add(list); } } return arrayList; } }