import java.util.*;
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer> > res = new ArrayList<ArrayList<Integer> >();
ArrayList<Integer> list = new ArrayList<Integer>();
// pRoot为空
if(pRoot == null){
return res;
}
// pRoot不为空
ArrayList<TreeNode> nodes = new ArrayList<TreeNode>();
TreeNode temp = null;
int size = 0;
int index = 0;
nodes.add(pRoot);
while(nodes.size() != 0){
size = nodes.size();
index++;
for(int i = 0;i < size;i++){
temp = nodes.remove(0);
if(temp.left != null){
nodes.add(temp.left);
}
if(temp.right != null){
nodes.add(temp.right);
}
list.add(temp.val);
}
if(index % 2 == 1){
res.add(new ArrayList<Integer>(list));
} else{
Collections.reverse(list);
res.add(new ArrayList<Integer>(list));
}
list.clear();
}
return res;
}
}