LeetCode 「中等」102.二叉树的层序遍历

sankigan2025-2-19算法LeetCode

二叉树的层序遍历open in new window

题目描述

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

示例

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

输入:root = [1]
输出:[[1]]

输入:root = []
输出:[]

解答

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

  const ans = [];
  const queue = [root];

  while (queue.length) {
    const curLvlSize = queue.length;
    const curLvlNode = [];

    for (let i = 0; i < curLvlSize; ++i) {
      const node = queue.shift();
      curLvlNode.push(node.val);
      if (node.left) queue.push(node.left);
      if (node.right) queue.push(node.right);
    }

    ans.push(curLvlNode);
  }

  return ans;
}
更新于 2025/3/20 23:23:29
ON THIS PAGE