题解 | #按之字形顺序打印二叉树#

按之字形顺序打印二叉树

https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function Print(pRoot) {
    // write code here
    if (!pRoot) return [];
    let result = [];
    // 先进行层序遍历
    // 1.队列方法
    // let queue = [];
    // queue.push(pRoot);
    // while (queue.length !== 0) {
    //     let len = queue.length;
    //     result.push([]);
    //     for (let i = 0; i < len; i++) {
    //         let temp = queue.shift();
    //         result[result.length - 1].push(temp.val);
    //         temp.left ? queue.push(temp.left) : null;
    //         temp.right ? queue.push(temp.right) : null;
    //     }
    // }

    // 2.递归方法
    function func(node, result, level) {
        if (!node) return;
        if (!result[level]) {
            result[level] = [];
        }
        result[level].push(node.val);
        func(node.left, result, level + 1);
        func(node.right, result, level + 1);
    }
    func(pRoot, result, 0);

    // 按条件倒叙
    result.map((item, index) => {
        if (index % 2 != 0) {
            item = item.reverse();
        }
        return item;
    });
    return result;
}
module.exports = {
    Print: Print,
};


全部评论

相关推荐

勤奋努力的椰子这就开摆:美团骑手在美团工作没毛病
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务