1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
var zigzagLevelOrder = function(root) { if (!root) { return [] } let queue = [] queue.push(root) let order = true let res = [] while (queue.length) { let n = queue.length let arr = [] if (order) { while (n--) { let node = queue.shift() arr.push(node.val) if (node.left) queue.push(node.left) if (node.right) queue.push(node.right) } } else { while (n--) { let node = queue.pop() arr.push(node.val) if (node.right) queue.unshift(node.right) if (node.left) queue.unshift(node.left) } } res.push(arr) order = !order } return res };
|