一、题目
二、代码
class Solution {
public:
void traversal(TreeNode* cur,vector<int>&path,vector<int>&result)
{
path.push_back(cur->val);
if(cur->left==nullptr&&cur->right==nullptr)
{
int i;
int temp_result=0;
for(i=0;i<path.size();i++)
{
temp_result+=path[i];
}
std::cout<<" temp _ result"<<temp_result<<std::endl;
result.push_back(temp_result);
}
if(cur->left)
{
traversal(cur->left,path,result);
path.pop_back();
}
if(cur->right)
{
traversal(cur->right,path,result);
path.pop_back();
}
}
bool hasPathSum(TreeNode* root, int targetSum)
{
bool return_bool=0;
vector<int>path;
vector<int>result;
vector<int>::iterator it;
if(root!=nullptr) traversal(root,path,result);
for(it=result.begin();it!=result.end();it++)
{
std::cout<<" "<<*it;
}
std::cout<<std::endl;
it=find(result.begin(),result.end(),targetSum);
if(it!=result.end()) return_bool=1;
return return_bool;
}
};
三、运行结果