給你一棵二叉樹,請你返回滿足以下條件的所有節點的值之和:
該節點的祖父節點的值爲偶數。(一個節點的祖父節點是指該節點的父節點的父節點。)
如果不存在祖父節點值爲偶數的節點,那麼返回 0 。
示例:
輸入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]
輸出:18
解釋:圖中紅色節點的祖父節點的值爲偶數,藍色節點爲這些紅色節點的祖父節點。
提示:
樹中節點的數目在 1 到 10^4 之間。
每個節點的值在 1 到 100 之間。
int ans;
class Solution {
public:
void sumEvenGrandparent(TreeNode* root,int fafa,int fa,int deep) {
if(!root)return;
if(deep>=3 && fafa%2==0)ans+=root->val;
sumEvenGrandparent(root->left,fa,root->val,deep+1);
sumEvenGrandparent(root->right,fa,root->val,deep+1);
}
int sumEvenGrandparent(TreeNode* root) {
ans=0;
sumEvenGrandparent(root,0,0,1);
return ans;
}
};