[Solved] Given the root of a binary tree, return the sum of values of nodes with an even-valued grandparent. If there are no nodes with an even-valued grandparent, return 0. A grandparent of a node is the parent of its parent if it exists.

Table of Contents

Question

Given the root of a binary tree, return the sum of values of nodes with an even-valued grandparent. If there are no nodes with an even-valued grandparent, return 0.

grandparent of a node is the parent of its parent if it exists.

Example 1:

even1 tree
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.

Example 2:

even2 tree
Input: root = [1]
Output: 0

Constraints:

  • The number of nodes in the tree is in the range [1, 104].
  • 1 <= Node.val <= 100

Python Solution

def traverse(root,p,gp):
    global ans
    if root==None:return
    if gp and gp.val%2==0:
        ans+=root.val
    traverse(root.left,root,p)
    traverse(root.right,root,p)
    
class Solution:
    def sumEvenGrandparent(self, root: TreeNode) -> int:
        global ans
        ans = 0
        traverse(root,None,None)
        return ans

Leave a Reply

Your email address will not be published. Required fields are marked *