Java 代码实现:
import java.util.*;
public class Solution {
public ArrayList> Print(TreeNode pRoot) {
if (pRoot == null) {
return new ArrayList>();
}
// 创建外层集合
ArrayList> treeNodes = new ArrayList>();
// 创建队列
Queue queue = new linkedList();
queue.add(pRoot);
int sum = 1; // 这个变量存表示每层的节点数量
int target = 1; // 变量表示当前行数是奇数行还是偶数行
// 3.循环
while(!queue.isEmpty()) {
ArrayList integers = new ArrayList();
// 这个变量临时存储每层的节点数量
int temp = 0;
while (sum > 0) {
TreeNode node = queue.poll();
integers.add(node.val);
if (node.left != null) {
queue.add(node.left);
temp++;
}
if (node.right!=null) {
queue.add(node.right);
temp++;
}
sum--;
}
// 替换下一层的节点数量
sum = temp;
if (target%2==0) {
Collections.reverse(integers);
}
// 下一次 技术转偶数 || 偶数转奇数
target++;
// 存入外部集合中
treeNodes.add(integers);
}
return treeNodes;
}
}



