(queue, isZigZag, levels)
| 28 | }; |
| 29 | |
| 30 | const bfs = (queue, isZigZag, levels) => { |
| 31 | for (let level = queue.size(); 0 < level; level--) { |
| 32 | /* Time O(WIDTH) */ |
| 33 | const { left, val, right } = queue.dequeue(); |
| 34 | |
| 35 | if (left) queue.enqueue(left); /* Space O(WIDTH) */ |
| 36 | if (right) queue.enqueue(right); /* Space O(WIDTH) */ |
| 37 | |
| 38 | levels.push(val); /* Space O(N) */ |
| 39 | } |
| 40 | |
| 41 | if (!isZigZag) levels.reverse(); |
| 42 | }; |