1315. 祖父节点值为偶数的节点和
- 题目
- 算法设计:深度优先搜索
题目
传送门:https://leetcode.cn/problems/sum-of-nodes-with-even-valued-grandparent/
算法设计:深度优先搜索
遍历二叉树,记录祖父节点,祖父节点是偶数,累加当前节点。
或者,对于节点值为偶数的节点,累加它的孙子节点的值即可。
class Solution {
public:
int sumEvenGrandparent(TreeNode* root, int p = 1, int gp = 1) {
// 先假设根节点 parent.val = 1,grandparent.val = 1
return root ? sumEvenGrandparent(root->left, root->val, p) // 遍历左子树时,通过父节点来更新祖父节点
+ sumEvenGrandparent(root->right, root->val, p) // 遍历右子树时,通过父节点来更新祖父节点
+ (gp % 2 ? 0 : root->val) : 0; // 祖父节点是偶数,累加当前节点
}
};