1. 程式人生 > 其它 >Leetcode 103 二叉樹的鋸齒形層序遍歷

Leetcode 103 二叉樹的鋸齒形層序遍歷

技術標籤:Leetcode演算法

Leetcode 103 二叉樹的鋸齒形層序遍歷

function TreeNode(val) {
    this.val = val;
    this.left = this.right = null;
};

var zigzagLevelOrder = function(root) {
    if (!root) {
        return [];
    }   
    return dfs(root);

    function dfs(root){
        const ans = []; //儲存返回結果
        const
nodeQueue = [root]; //儲存二叉樹的結構,用於深搜的遍歷 let isOrderLeft = true; //決定遍歷的順序 while (nodeQueue.length) { let levelList = []; //儲存同一深度上的節點值 const size = nodeQueue.length; // 同一深度節點的個數 for (let i = 0; i < size; ++i) { const node = nodeQueue.
shift(); if (isOrderLeft) { levelList.push(node.val); } else { levelList.unshift(node.val); } if (node.left !== null) { nodeQueue.push(node.left); } if
(node.right !== null) { nodeQueue.push(node.right); } } ans.push(levelList); isOrderLeft = !isOrderLeft; } return ans; } };