- Notifications
You must be signed in to change notification settings - Fork 306
/
Copy path637.py
33 lines (28 loc) · 965 Bytes
/
637.py
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
27
28
29
30
31
32
33
classSolution(object):
# DFS Recursion
defaverageOfLevels(self, root):
self.res= []
defdfs(root, level):
ifnotroot:
return []
iflen(self.res) ==level:
self.res.append([])
self.res[level].append(root.val)
dfs(root.left, level+1)
dfs(root.right, level+1)
dfs(root, 0)
return [sum(num)/float(len(num)) fornuminself.res]
# DFS Recursion, Optimized using Tuples
defaverageOfLevels2(self, root):
self.res= []
defdfs(root, level):
ifnotroot:
return []
iflen(self.res) ==level:
self.res.append([0,0])
self.res[level][0] +=root.val
self.res[level][1] +=1.0
dfs(root.left, level+1)
dfs(root.right, level+1)
dfs(root, 0)
return [num/countfornum, countinself.res]