import java.util.*;
public class Solution {
public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer>> answer=new ArrayList<>();
if(pRoot==null){
return answer;
}
Queue<TreeNode> queue=new LinkedList<>();
queue.add(pRoot);
int flag=0;
while(!queue.isEmpty()){
int size=queue.size();
ArrayList<Integer> tempAnswer=new ArrayList<>();
for(int i=0;i<size;++i){
TreeNode temp=queue.poll();
tempAnswer.add(temp.val);
if(temp.left!=null){
queue.offer(temp.left);
}
if(temp.right!=null){
queue.offer(temp.right);
}
}
if(flag%2==1){
int i=0,j=tempAnswer.size()-1;
while(i<j){
int temp=tempAnswer.get(i);
tempAnswer.set(i,tempAnswer.get(j));
tempAnswer.set(j,temp);
++i;
--j;
}
}
answer.add(tempAnswer);
++flag;
}
return answer;
}
}