> For the complete documentation index, see [llms.txt](https://mayanktyagi3111.gitbook.io/interview-prep/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mayanktyagi3111.gitbook.io/interview-prep/trees/sum-of-nodes-with-even-valued-grandparent.md).

# Sum of Nodes with Even-Valued Grandparent

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`.

**Example 1:**

![](https://assets.leetcode.com/uploads/2019/07/24/1473_ex1.png)

```
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`.

```java
class Solution {
    public static int sum = 0;

    public int sumEvenGrandparent(TreeNode root) {
        sum=0;
        dfs(root, null, null);
        return sum;
    }

    void dfs(TreeNode current, TreeNode parent, TreeNode grandParent) {
        if (current == null)
            return; // base case

        if (grandParent != null && grandParent.val % 2 == 0)
            sum += current.val;
        
        dfs(current.left, current, parent);// ( newChild, parent, GrandParent)
        dfs(current.right, current, parent);
    }
}
```
