• 剑指 Offer 32


    通过率 64.7%

    题目链接

    题目描述:

    从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

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

    3
    /
    9 20
    /
    15 7

    返回:

    [3,9,20,15,7]

    提示:

    节点总数 <= 1000

    思路:

    bfs广搜,创建一个队列按层序遍历存储节点,还须创建一个数组res来存储对应的节点值(即返回结果)

    • 先将根节点入队
    • 遍历队列,一旦当前节点(即队首节点)有左子树,就将左子树入队,右子树也一样
    • 将当前节点的val值push进数组res,shift弹出当前节点
    • 重复前两步操作直到队列为空
     1 /*JavaScript*/
     2 /**
     3  * Definition for a binary tree node.
     4  * function TreeNode(val) {
     5  *     this.val = val;
     6  *     this.left = this.right = null;
     7  * }
     8  */
     9 /**
    10  * @param {TreeNode} root
    11  * @return {number[]}
    12  */
    13 var levelOrder = function(root) {
    14     if(!root) return []
    15 
    16     const queue = new Array()
    17     const res = new Array()
    18     queue.push(root)
    19     
    20     while(queue.length) {
    21         if(queue[0].left) queue.push(queue[0].left)
    22         if(queue[0].right) queue.push(queue[0].right)
    23         res.push(queue.shift().val)
    24     }
    25     return res
    26 };
  • 相关阅读:
    IO流
    异常,File,递归,IO流
    Collection接口 map
    使用canvas画出的时钟
    js对象2
    js对象
    js 猜数游戏、斗地主发牌、伪数字
    js函数2
    js函数
    js矩形,数组,杨辉三角
  • 原文地址:https://www.cnblogs.com/wwqzbl/p/15142804.html
Copyright © 2020-2023  润新知