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; } }