Given the root of a binary tree, return the zigzag level order traversal of its nodes’ values. (i.e., from left to right, then right to left for the next level and alternate between).
let queue = [root] let res = [] let leftToRight = true
while (queue.length) { let curLength = queue.length let curLevel = []
for (let i = 0; i < curLength; i++) { let cur = queue.shift() if (leftToRight) { curLevel.push(cur.val) } else { curLevel.unshift(cur.val) } if (cur.left) { queue.push(cur.left) } if (cur.right) { queue.push(cur.right) } } leftToRight = !leftToRight res.push(curLevel) } return res }