Average of Levels in Binary Tree LeetCode solution in Python

1
class Solution:
2
def averageOfLevels(self, root: TreeNode) -> List[float]:
3

4
if not root:
5

6
# Quick response for empty tree
7
return []
8

9
traversal_q = [root]
10

11
average = []
12

13
while traversal_q:
14

15
# compute current level average
16
cur_avg = sum((node.val for node in traversal_q if node)) / len(traversal_q)
17

18
# add to result
19
average.append(cur_avg)
20

21
# update next level queue
22
next_level_q = [
23
child
24
for node in traversal_q
25
for child in (node.left, node.right)
26
if child
27
]
28

29
# update traversal queue as next level's
30
traversal_q = next_level_q
31

32
return average

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0