|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目描述:
- 给你一棵二叉树,请你返回满足以下条件的所有节点的值之和:
- 该节点的祖父节点的值为偶数。(一个节点的祖父节点是指该节点的父节点的父节点。)
- 如果不存在祖父节点值为偶数的节点,那么返回 0 。
-
- 示例:
- 输入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]
- 输出:18
- 解释:图中红色节点的祖父节点的值为偶数,蓝色节点为这些红色节点的祖父节点。
-
- 提示:
- 树中节点的数目在 1 到 10^4 之间。
- 每个节点的值在 1 到 100 之间。
复制代码
- /**
- * Definition for a binary tree node.
- * struct TreeNode {
- * int val;
- * TreeNode *left;
- * TreeNode *right;
- * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
- * };
- */
- class Solution {
- public:
- int dfs(TreeNode* root, int parent, int grandparent){
- if(root == NULL) return 0;
- int res = 0;
- if(grandparent %2 == 0) res += root -> val;
- res += dfs(root -> left, root -> val, parent);
- res += dfs(root -> right, root -> val, parent);
- return res;
- }
- int sumEvenGrandparent(TreeNode* root) {
- return dfs(root, -1, -1);
- }
- };
复制代码 |
|