2
* Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode3
* right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left,4
* TreeNode right) { this.val = val; this.left = left; this.right = right; } }7
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {8
Queue<TreeNode> q = new LinkedList<TreeNode>();9
List<List<Integer>> res = new ArrayList<>();15
while (!q.isEmpty()) {17
List<Integer> curr = new ArrayList<>();18
for (int i = 0; i < size; i++) {19
if (q.peek().left != null) {20
q.offer(q.peek().left);22
if (q.peek().right != null) {23
q.offer(q.peek().right);26
curr.add(q.poll().val);28
curr.add(0, q.poll().val);