public ArrayList<ArrayList<integer> > Print(TreeNode pRoot) {
ArrayList<ArrayList<integer>> res = new ArrayList<>();
if (pRoot == null) {
return res;
}
// int D = Depth(pRoot);
Queue<treenode> queue = new LinkedList<>();
queue.add(pRoot);
int depth = 1;
while (!queue.isEmpty()) {
ArrayList<integer> tmp = new ArrayList<>();
int size = queue.size();
for (int i = 0; i < size; i++) {
TreeNode node = queue.poll();
if (depth % 2 == 0) {
tmp.add(0, node.val);
} else {
tmp.add(node.val);
}
if (node.left != null) {
queue.add(node.left);
}
if (node.right != null) {
queue.add(node.right);
}
}
res.add(tmp);
depth++;
}
return res;
}
剑指offer的答案不挺好的吗</integer></treenode></integer></integer>