File tree Expand file tree Collapse file tree 2 files changed +34
-1
lines changed Expand file tree Collapse file tree 2 files changed +34
-1
lines changed Original file line number Diff line number Diff line change 109
109
|270|[Closest Binary Search Tree Value](https://leetcode.com/problems/closest-binary-search-tree-value/#/description)| [Python ](./tree/Yu/270.py)| _O(N)_| _O(1)_|[:tv:](https://youtu.be/RwvQyKJxHZk)|
110
110
|563|[Binary Tree Tilt](https://leetcode.com/problems/binary-tree-tilt/#/description)| [Python ](./tree/Yu/563.py) | _O(N)_| _O(1)_ |[:tv:](https://youtu.be/47FQVP4ynk0)|
111
111
|538|[Convert BST to Greater Tree](https://leetcode.com/problems/convert-bst-to-greater-tree/#/description)| [Python ](./tree/Yu/538.py) | _O(N)_| _O(1)_ |[:tv:](https://youtu.be/YoEPWtXmkD4)|
112
-
112
+ |637|[Average of Levels in Binary Tree](https://leetcode.com/problems/average-of-levels-in-binary-tree/)| [Python ](./tree/Yu/637.py) | _O(N)_| _O(1)_ ||
113
113
114
114
## Tree Medium
115
115
| # | Title | Solution | Time | Space | Video|
Original file line number Diff line number Diff line change
1
+ class Solution(object):
2
+ # DFS Recursion
3
+ def averageOfLevels(self, root):
4
+ self.res = []
5
+
6
+ def dfs(root, level):
7
+ if not root:
8
+ return []
9
+ if len(self.res) == level:
10
+ self.res.append([])
11
+ self.res[level].append(root.val)
12
+ dfs(root.left, level + 1)
13
+ dfs(root.right, level + 1)
14
+
15
+ dfs(root, 0)
16
+ return [sum(num)/float(len(num)) for num in self.res]
17
+
18
+ # DFS Recursion, Optimized using Tuples
19
+ def averageOfLevels2(self, root):
20
+ self.res = []
21
+
22
+ def dfs(root, level):
23
+ if not root:
24
+ return []
25
+ if len(self.res) == level:
26
+ self.res.append([0,0])
27
+ self.res[level][0] += root.val
28
+ self.res[level][1] += 1.0
29
+ dfs(root.left, level + 1)
30
+ dfs(root.right, level + 1)
31
+
32
+ dfs(root, 0)
33
+ return [num/count for num, count in self.res]
You can’t perform that action at this time.
0 commit comments