| # 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)) | |||||
| Given a binary tree, return the sum of values of nodes with even-valued grandparent. (A grandparent of a node is the parent of its parent, if it exists.) | |||||
| If there are no nodes with an even-valued grandparent, return 0. | |||||
| (There is an example picture here, to get an idea of the tree check out the code. | |||||
| Example 1: | |||||
| Input: root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5] | |||||
| Output: 18 | |||||
| Explanation: The red nodes are the nodes with even-value grandparent while the blue nodes are the even-value grandparents. | |||||
| Constraints: | |||||
| The number of nodes in the tree is between 1 and 10^4. | |||||
| The value of nodes is between 1 and 100. | |||||
| #!/bin/bash | |||||
| python3 main.py |