package com.fishercoder.solutions;

import com.fishercoder.common.classes.TreeNode;

public class _1315 {
    public static class Solution1 {
        public int sumEvenGrandparent(TreeNode root) {
            if (root == null) {
                return 0;
            }
            return dfs(root, root.left, 0) + dfs(root, root.right, 0);
        }

        private int dfs(TreeNode grandparent, TreeNode parent, int sum) {
            if (grandparent == null || parent == null) {
                return sum;
            }
            if (grandparent.val % 2 == 0 && parent.left != null) {
                sum += parent.left.val;
            }
            if (grandparent.val % 2 == 0 && parent.right != null) {
                sum += parent.right.val;
            }
            sum = dfs(parent, parent.left, sum);
            sum = dfs(parent, parent.right, sum);
            return sum;
        }
    }
}