Sum of Nodes with Even Grandparent Values
Given a binary tree root
, return the sum of all node values whose grandparents have an even value.
Constraints
0 ≤ n ≤ 100,000
wheren
is the number of nodes inroot
https://binarysearch.com/problems/Sum-of-Nodes-with-Even-Grandparent-Values
ExamplesPermalink
Example 1Permalink
Input
- root =
Output
- answer =
15
Explanation
Nodes 6
, 7
, and 2
have an even value grandparent.
SolutionPermalink
/** | |
* class Tree { | |
* public: | |
* int val; | |
* Tree *left; | |
* Tree *right; | |
* }; | |
*/ | |
int solveR(Tree *node, int *res) | |
{ | |
if (!node) | |
{ | |
return 0; | |
} | |
int left = solveR(node->left, res); | |
int right = solveR(node->right, res); | |
if (node->val % 2 == 0) | |
{ | |
*res += left + right; | |
} | |
return (node->left ? node->left->val : 0) + (node->right ? node->right->val : 0); | |
} | |
int solve(Tree *root) | |
{ | |
int res = 0; | |
solveR(root, &res); | |
return res; | |
} |
Leave a comment