Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
一、题目描述:
给你二叉树的根节点
root,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/bi…
二、思路分析:
层序遍历
三、AC 代码:
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number[][]}
*/
var zigzagLevelOrder = function(root) {
if(!root) return []
let flag=true;
let res=[];
let temp1=[root];
let temp2=[root.val];
while(temp1.length){
let len=temp1.length;
res.push(flag?[...temp2]:[...temp2.reverse()])
temp2=[]
while(len--){
let t=temp1.shift();
if(t.left) {
temp2.push(t.left.val);
temp1.push(t.left)
}
if(t.right) {
temp2.push(t.right.val);
temp1.push(t.right)
}
}
flag=!flag
}
return res;
};
四、总结:
层序遍历