515. 在每个树行中找最大值

广度优先遍历 BFS

解题思路

  1. 对二叉树进行层次遍历;

  2. 每一层遍历时,找出当前层的最大值,放入 res 中;

  3. 重复上述操作直到队列为空,遍历结束;

复杂度

  1. 时间复杂度:O(n),其中 n 为二叉树节点个数,每一个节点仅会进出队列一次;

  2. 空间复杂度:O(n),存储二叉树节点的空间开销;

代码实现

var largestValues = function (root) {
    if (root === null) return [];

    let res = [];
    let queue = [root];

    while (queue.length) {
        let len = queue.length;
        let maxNum = -Infinity;
        while (len--) {
            let node = queue.shift();
            maxNum = Math.max(maxNum, node.val);

            node.left && queue.push(node.left);
            node.right && queue.push(node.right);
        }
        res.push(maxNum);
    }

    return res;
};
打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. 广度优先遍历 BFS
    1. 1.1. 解题思路
    2. 1.2. 复杂度
    3. 1.3. 代码实现