//DFS和二叉树
class Solution {
private:vector<int>temp;
vector<vector<int>>result;
void solve_dfs(TreeNode *root,int sum,vector<int> temp,int add)
{
if(root==NULL)
return;
if(root->left==NULL&&root->right==NULL)
{
if(add+root->val==sum)
{
temp.push_back(root->val);
result.push_back(temp);
temp.clear();
}
return;
}
temp.push_back(root->val);
solve_dfs(root->left,sum,temp,add+root->val);
solve_dfs(root->right,sum,temp,add+root->val);
}
public:
vector<vector<int> > pathSum(TreeNode *root, int sum) {
result.clear();
solve_dfs(root,sum,temp,0);
return result;
}
};
本文介绍了一种使用深度优先搜索(DFS)算法解决二叉树中路径和等于目标值的问题。通过递归遍历二叉树节点,实现路径查找并返回满足条件的路径集合。
1201

被折叠的 条评论
为什么被折叠?



