My LeetCode grinding. Trying to do a problem a day.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

main.py 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # Definition for a binary tree node.
  2. class TreeNode:
  3. def __init__(self, x):
  4. self.val = x
  5. self.left = None
  6. self.right = None
  7. class Solution:
  8. def sumEvenGrandparent(self, root):
  9. if root is None:
  10. return 0
  11. return self.sumEG(root, False, False)
  12. def sumEG(self, tree, grandParentEven, parentEven):
  13. sum = 0
  14. if tree is None:
  15. return sum
  16. if grandParentEven:
  17. sum += tree.val
  18. sum += self.sumEG(tree.left, parentEven, tree.val % 2 == 0)
  19. sum += self.sumEG(tree.right, parentEven, tree.val % 2 == 0)
  20. return sum
  21. s = Solution()
  22. print("Expected: 18")
  23. tree = TreeNode(6)
  24. a = TreeNode(7)
  25. b = TreeNode(2)
  26. c = TreeNode(7)
  27. d = TreeNode(8)
  28. e = TreeNode(9)
  29. f = TreeNode(1)
  30. g = TreeNode(4)
  31. h = TreeNode(1)
  32. i = TreeNode(3)
  33. j = TreeNode(5)
  34. i.right = j
  35. d.right = i
  36. d.left = h
  37. tree.right = d
  38. c.right = g
  39. c.left = f
  40. a.right = c
  41. b.left = e
  42. a.left = b
  43. tree.left = a
  44. print("Got:", s.sumEvenGrandparent(tree))