給你一棵二叉樹,請你返回滿足以下條件的所有節點的值之和:
該節點的祖父節點的值爲偶數。(一個節點的祖父節點是指該節點的父節點的父節點。)
如果不存在祖父節點值爲偶數的節點,那麼返回 0
算法
dfs
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
private int ans=0;
public int sumEvenGrandparent(TreeNode root) {
dfs(null,null,root);
return ans;
}
private void dfs(TreeNode grandfather,TreeNode father,TreeNode node){
if(node==null)return ;
if(grandfather !=null && grandfather.val % 2==0){
ans+=node.val;
}
dfs(father,node,node.left);
dfs(father,node,node.right);
}
}