My LeetCode grinding. Trying to do a problem a day.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

main.py 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # Definition for a binary tree node.
  2. class TreeNode:
  3. def __init__(self, val=0, left=None, right=None):
  4. self.val = val
  5. self.left = left
  6. self.right = right
  7. class Solution:
  8. def __init__(self):
  9. self.levels = dict()
  10. def maxLevelSum(self, root):
  11. # recursively add sums for all nodes to hashmap with key as level
  12. self.traverseWithLevel(root, 1)
  13. maximum = -1
  14. maxLvl = 1
  15. for key, value in self.levels.items():
  16. if value > maximum:
  17. maxLvl = key
  18. maximum = value
  19. return maxLvl
  20. def traverseWithLevel(self, tree, level):
  21. if tree is None:
  22. return
  23. if level not in self.levels:
  24. self.levels[level] = 0
  25. self.levels[level] += tree.val
  26. self.traverseWithLevel(tree.left, level + 1)
  27. self.traverseWithLevel(tree.right, level + 1)
  28. s = Solution()
  29. print("Expected: 2")
  30. tree = TreeNode(1)
  31. tree.right = TreeNode(2)
  32. tree.left = TreeNode(3)
  33. print("Got:", s.maxLevelSum(tree))