029 · Average of Levels in Binary Tree

algorithm
Published

June 5, 2026

Problem

给定一棵二叉树的根节点 root

请返回这棵树中每一层节点值的平均数。

结果需要按照从上到下的层级顺序返回。也就是说,先返回第 0 层,也就是根节点所在层的平均数;再返回第 1 层;然后继续返回更深层。

例如,下面这棵树有三层:

      3
     / \
    9  20
       / \
      15  7

0 层只有节点 3,平均数是:

3

1 层有节点 920,平均数是:

(9 + 20) / 2 = 14.5

2 层有节点 157,平均数是:

(15 + 7) / 2 = 11

所以答案是:

[3.00000, 14.50000, 11.00000]

注意,这道题要按层统计。不能只遍历所有节点后求一个总平均数,也不能把不同层的节点混在一起计算。

Examples

示例 1

Input:  root = [3,9,20,null,null,15,7]
Output: [3.00000,14.50000,11.00000]

解释:第 0 层是 [3],平均数是 3;第 1 层是 [9,20],平均数是 14.5;第 2 层是 [15,7],平均数是 11

示例 2

Input:  root = [3,9,20,15,7]
Output: [3.00000,14.50000,11.00000]

解释:这棵树可以表示为:

      3
     / \
    9  20
   / \
  15  7

每一层的节点值分别是 [3][9,20][15,7],所以平均数仍然是 [3.00000,14.50000,11.00000]

示例 3

Input:  root = [1]
Output: [1.00000]

解释:只有一个根节点时,只有一层,这一层的平均数就是 1

Constraints

  • 树中节点的数量范围是 \([1, 10^4]\)
  • \(-2^{31} \leq\) Node.val \(\leq 2^{31} - 1\)