【剑指offer】 从上到下打印二叉树

  |   0 评论   |   0 浏览

题目

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

我的答案

/**
 * 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 [] }
    const resultArr = [];
    const queue = [root];
    while (queue.length) {
        resultArr.push(queue[0].val);
        if (queue[0].left) {
            queue.push(queue[0].left);
        }
        if (queue[0].right) {
            queue.push(queue[0].right);
        }
        queue.shift();
    }
    return resultArr;
};

这道很经典的广度搜索。就是利用一个队列记录每层的节点。每次取队头的节点,将节点的值存到结果数组中,然后检查该节点是否有左节点和右节点,有的话就放在队尾。


标题:【剑指offer】 从上到下打印二叉树
作者:limanting
地址:https://blog.manxiaozhi.com/articles/2021/09/02/1630596989983.html