(root, isZigZag = true, order = [])
| 13 | }; |
| 14 | |
| 15 | var search = (root, isZigZag = true, order = []) => { |
| 16 | const queue = new Queue([root]); |
| 17 | |
| 18 | while (!queue.isEmpty()) { |
| 19 | /* Time O(N) */ |
| 20 | const levels = []; |
| 21 | |
| 22 | bfs(queue, isZigZag, levels); /* Time O(WIDTH) | Space O(WIDTH) */ |
| 23 | order.push(levels); /* Space O(N) */ |
| 24 | isZigZag = !isZigZag; |
| 25 | } |
| 26 | |
| 27 | return order; |
| 28 | }; |
| 29 | |
| 30 | const bfs = (queue, isZigZag, levels) => { |
| 31 | for (let level = queue.size(); 0 < level; level--) { |
no test coverage detected