Leetcode437
给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。
路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
注意点:
节点值存在负数所以不能判断target到0就直接停止。
class Solution {
public:
int res = 0;
int pathSum(TreeNode* root, int targetSum) {
if(root == nullptr) return res;
dfs(root, targetSum);
pathSum(root->left, targetSum);
pathSum(root->right, targetSum);
return res;
}
void dfs(TreeNode* root, int target){
if(root == nullptr) return;
if(target == root -> val) res++;
dfs(root -> left, target - root -> val);
dfs(root -> right, target - root -> val);
}
};