public ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer>> list = new ArrayList<>();
if (pRoot==null)
return list;
LinkedList<TreeNode> queue = new LinkedList<>();
queue.add(pRoot);
int flag=0;
while (!queue.isEmpty()){
ArrayList<Integer> path = new ArrayList<>();
//某层的节点个数
int size = queue.size();
for (int i=0;i<size;i++){
TreeNode node = queue.removeFirst();
if (flag%2==0)
path.add(path.size(),node.val);
else
path.add(0,node.val);
if (node.left!=null)
queue.add(node.left);
if (node.right!=null)
queue.add(node.right);
}
flag++;
list.add(path);
}
return list;
}