41.二叉树的层序遍历

34 阅读1分钟

题目链接

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

解法 bfs层序遍历

思路

使用队列遍历即可。

代码

function levelOrder(root: TreeNode | null): number[][] {
    const result = [];
    if (!root) return result;

    const queue = [root];
    while (queue.length) {
        let size = queue.length;
        const level = [];
        while (size--) {
            const node = queue.shift()!;
            level.push(node.val);
            if (node.left) queue.push(node.left);
            if (node.right) queue.push(node.right);
        }
        result.push(level);
    }

    return result;
};

时空复杂度

时间复杂度:O(n)

空间复杂度:O(n)