给你二叉树的根节点 root,返回其节点值的锯齿形层序遍历。即先从左往右,再从右往左进行下一层遍历,以此类推。
解析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| var zigzagLevelOrder = function (root) { if (!root) return []; const result = [], queue = [root]; let leftToRight = true; while (queue.length) { const level = [], size = queue.length; for (let i = 0; i < size; i++) { const node = queue.shift(); leftToRight ? level.push(node.val) : level.unshift(node.val); if (node.left) queue.push(node.left); if (node.right) queue.push(node.right); } result.push(level); leftToRight = !leftToRight; } return result; };
|