Skip to content

637. Average Of Levels In Binary Tree

Tree Depth-First Search Breadth-First Search Binary Tree

Problem - Average Of Levels In Binary Tree

Easy

Given the root of a binary tree, return the average value of the nodes on each level in the form of an array. Answers within 10-5 of the actual answer will be accepted.

 

Example 1:

Input: root = [3,9,20,null,null,15,7]
Output: [3.00000,14.50000,11.00000]
Explanation: The average value of nodes on level 0 is 3, on level 1 is 14.5, and on level 2 is 11.
Hence return [3, 14.5, 11].

Example 2:

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

 

Constraints:

  • The number of nodes in the tree is in the range [1, 104].
  • -231 <= Node.val <= 231 - 1

Solutions

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def averageOfLevels(self, root: Optional[TreeNode]) -> List[float]:
        queue = deque([root])
        result = []

        while queue:
            sum_val, n = 0, len(queue)
            for _ in range(n):
                root = queue.popleft()
                sum_val += root.val

                if root.left:
                    queue.append(root.left)

                if root.right:
                    queue.append(root.right)

            result.append(sum_val / n)

        return result

Submission Stats:

  • Runtime: 0 ms (100.00%)
  • Memory: 19.8 MB (96.70%)