029 · Average of Levels in Binary Tree
algorithm
Problem
给定一棵二叉树的根节点 root。
请返回这棵树中每一层节点值的平均数。
结果需要按照从上到下的层级顺序返回。也就是说,先返回第 0 层,也就是根节点所在层的平均数;再返回第 1 层;然后继续返回更深层。
例如,下面这棵树有三层:
3
/ \
9 20
/ \
15 7
第 0 层只有节点 3,平均数是:
3
第 1 层有节点 9 和 20,平均数是:
(9 + 20) / 2 = 14.5
第 2 层有节点 15 和 7,平均数是:
(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\)
Link
→ Solution