[路飞]_js算法:leetcode 103. 二叉树的锯齿形层序遍历

108 阅读1分钟

leetcode 103. 二叉树的锯齿形层序遍历

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

示例 1:

输入: root = [3,9,20,null,null,15,7]
输出: [[3],[20,9],[15,7]]

思路: 奇数偶数层数组添加位置变化 还是用递归遍历添加

/**
 * 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[][]}
 */
 function consoleLog(root,ans,k){
     if(root==null)return;
     if(k==ans.length)ans.push([]);
     if(k%2){
         ans[k].unshift(root.val)
     }else{
         ans[k].push(root.val)
     }
     consoleLog(root.left,ans,k+1);
     consoleLog(root.right,ans,k+1);
     return 

 }
var zigzagLevelOrder = function(root) {
    let ans=[];
    consoleLog(root,ans,0);
    return ans;
};