给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。力扣原文
示例 1:
输入: root = [3,9,20,null,null,15,7]
输出: [[3],[20,9],[15,7]]
示例 2:
输入: root = [1]
输出: [[1]]
示例 3:
输入: root = []
输出: []
解题代码:
var zigzagLevelOrder = function (root) {
if(!root)return []
let result=[]
let curLevaQueue=[root]
let leva=0
while(curLevaQueue.length){
let vals=[];
let nextLevaQueue=[]
while(curLevaQueue.length){
let {val,left,right}=curLevaQueue.shift()
if(leva%2){
vals.unshift(val)
}else{
vals.push(val)
}
left&&nextLevaQueue.push(left)
right&&nextLevaQueue.push(right)
}
result.push(vals)
leva++
curLevaQueue=nextLevaQueue
}
return result
};