# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def sumEvenGrandparent(self, root: Optional[TreeNode]) -> int:
sum_ = 0
if(root == None):
return 0
else:
if root.val % 2 == 0:
if root.left != None:
if root.left.left != None:
sum_+= root.left.left.val
if root.left.right != None:
sum_+= root.left.right.val
if root.right != None:
if root.right.left != None:
sum_+= root.right.left.val
if root.right.right != None:
sum_ += root.right.right.val
left_sum = Solution.sumEvenGrandparent(self, root.left)
right_sum = Solution.sumEvenGrandparent(self, root.right)
return left_sum + sum_ + right_sum