Skip to content

Commit bbd4185

Browse files
committed
feat: 1161. Maximum Level Sum of a Binary Tree
1 parent 9ab8b79 commit bbd4185

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

src/binary_tree/bfs/maximum_level_sum_of_a_binary_tree/__init__.py

Whitespace-only changes.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from collections import deque
2+
from typing import Optional
3+
from structures import TreeNode
4+
5+
6+
class Solution:
7+
def maxLevelSum(self, root: Optional[TreeNode]) -> int:
8+
curr_lvl = 1
9+
maximum = float("-inf")
10+
ans = 1
11+
queue = deque([root])
12+
13+
while queue:
14+
curr_sum = 0
15+
lvl_size = len(queue)
16+
for _ in range(lvl_size):
17+
node = queue.popleft()
18+
curr_sum += node.val
19+
if node.left:
20+
queue.append(node.left)
21+
if node.right:
22+
queue.append(node.right)
23+
if curr_sum > maximum:
24+
maximum = curr_sum
25+
ans = curr_lvl
26+
curr_lvl += 1
27+
return ans
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import pytest
2+
from src.binary_tree.bfs.maximum_level_sum_of_a_binary_tree.solution import Solution
3+
from test_utils import TreeBuilder
4+
5+
6+
@pytest.mark.parametrize(
7+
"root, expected",
8+
[
9+
([1, 7, 0, 7, -8, None, None], 2),
10+
([989, None, 10250, 98693, -89388, None, None, None, -32127], 2),
11+
],
12+
)
13+
def test_max_depth(root, expected):
14+
root = TreeBuilder.from_list(root)
15+
solution = Solution()
16+
assert solution.maxLevelSum(root) == expected

0 commit comments

Comments
 (0)