Sum of Nodes with Even-Valued Grandparent
MediumTreeDepth-First SearchBreadth-First SearchBinary Tree
Solution
import { TreeNode } from '@algorithm/lib';
export function sumEvenGrandparent(root: TreeNode | null): number {
function traverse(node: TreeNode | null, grandparent?: number, parent?: number): number {
if (node === null) {
return 0;
}
const prevSum = traverse(node.left, parent, node.val) + traverse(node.right, parent, node.val);
if (typeof grandparent !== 'number' || grandparent % 2 === 1) {
return prevSum;
}
return prevSum + node.val;
}
return traverse(root);
}