给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

思路

  1. 常规迭代遍历即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var levelOrder = function (root) {
if (!root) {
return []
}
const result = []
let curNodes = [root]
while (curNodes.length > 0) {
result.push(curNodes.map((item) => item.val))
const nextNodes = []
curNodes.forEach((node) => {
if (node.left) {
nextNodes.push(node.left)
}
if (node.right) {
nextNodes.push(node.right)
}
})
curNodes = nextNodes
}
return result
}