目录

0637:二叉树的层平均值

力扣第 637 题

题目

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:[3.00000,14.50000,11.00000]
解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11 。
因此返回 [3, 14.5, 11] 。

示例 2:

输入:root = [3,9,20,15,7]
输出:[3.00000,14.50000,11.00000]

提示:

  • 树中节点数量在 [1, 104] 范围内
  • -231 <= Node.val <= 231 - 1

分析

0102 的每层结果中取均值即可。

解答

1
2
3
4
5
6
7
8
def averageOfLevels(self, root: TreeNode) -> List[float]:
    if not root:
        return []
    res, level = [], [root]
    while level:
        res.append(sum(node.val for node in level)/len(level))
        level = [child for node in level for child in [node.left, node.right] if child]
    return res

48 ms