本文主要是介绍[力扣 Hot100]Day48 路径总和 III,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。
路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
出处
思路
递归看任意子树从根出发的路径是否符合要求,注意和用float存。
代码
class Solution {
public:int pathCount(TreeNode* root,int target,float now){int path=0;now+=root->val;if(now==(float)target) path++;if(root->left) path+=pathCount(root->left,target,now);if(root->right) path+=pathCount(root->right,target,now);return path;}void visit(TreeNode* root,int target,int& ans){ans+=pathCount(root,target,0);if(root->left) visit(root->left,target,ans);if(root->right) visit(root->right,target,ans);}int pathSum(TreeNode* root, int targetSum) {if(!root) return 0;int ans=0;visit(root,targetSum,ans);return ans;}
};
这篇关于[力扣 Hot100]Day48 路径总和 III的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!