class Solution {
public:
int sumEvenGrandparent(TreeNode* root)
{
// USING BFS:
if (root == NULL)
{
return 0;
}
queue<TreeNode*>q;
q.push(root);
int sum=0;
while(!q.empty())
{
TreeNode* curr=q.front();
q.pop();
if (curr->val % 2 == 0)
{
if (curr->left)
{
if (curr->left->left)
{
sum += curr->left->left->val;;
}
if (curr->left->right)
{
sum += curr->left->right->val;
}
}
if (curr->right)
{
if (curr->right->right)
{
sum += curr->right->right->val;
}
if (curr->right->left)
{
sum+=curr->right->left->val;
}
}
}
if (curr->left)
{
q.push(curr->left);
}
if (curr->right)
{
q.push(curr->right);
}
}
return sum;
}
};