12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # Definition for a binary tree node.
- class TreeNode:
- def __init__(self, x):
- self.val = x
- self.left = None
- self.right = None
-
- class Solution:
- def sumEvenGrandparent(self, root):
- if root is None:
- return 0
- return self.sumEG(root, False, False)
-
- def sumEG(self, tree, grandParentEven, parentEven):
-
- sum = 0
- if tree is None:
- return sum
-
- if grandParentEven:
- sum += tree.val
-
- sum += self.sumEG(tree.left, parentEven, tree.val % 2 == 0)
- sum += self.sumEG(tree.right, parentEven, tree.val % 2 == 0)
-
- return sum
-
- s = Solution()
- print("Expected: 18")
- tree = TreeNode(6)
- a = TreeNode(7)
- b = TreeNode(2)
- c = TreeNode(7)
- d = TreeNode(8)
- e = TreeNode(9)
- f = TreeNode(1)
- g = TreeNode(4)
- h = TreeNode(1)
- i = TreeNode(3)
- j = TreeNode(5)
-
- i.right = j
- d.right = i
- d.left = h
- tree.right = d
-
- c.right = g
- c.left = f
- a.right = c
- b.left = e
- a.left = b
- tree.left = a
-
- print("Got:", s.sumEvenGrandparent(tree))
-
|