Java教程

剑指 Offer 32 - I. 从上到下打印二叉树(medium) javascript解法

本文主要是介绍剑指 Offer 32 - I. 从上到下打印二叉树(medium) javascript解法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

⚡️剑指 Offer 32 - I. 从上到下打印二叉树⚡️
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

例如:
给定二叉树: [3,9,20,null,null,15,7],

3

/
9 20
/
15 7
返回:

[3,9,20,15,7]

提示:

节点总数 <= 1000

⚡️分析⚡️

从上到下、从左到右打印二叉树,思路可以是通过一个队列来求解。
当队列中有元素时,将队头移出,如果该结点有左或右结点那就压入队列即可

代码如下:

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number[]}
 */
var levelOrder = function(root) {
    if(!root) return [];

    let arr = [], queue = [], node;
    queue.push(root);

    while(queue.length) {
        node = queue.shift();
        arr.push(node.val);
        if(node.left) {
            queue.push(node.left);
        }
        if(node.right) {
            queue.push(node.right);
        }
    }
    return arr;
};


算法效率如图:
在这里插入图片描述

这篇关于剑指 Offer 32 - I. 从上到下打印二叉树(medium) javascript解法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!