/* struct TreeNode { int val; struct TreeNode left; struct TreeNode right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };/ class Solution { public: vector path; vector<vector> res; vector<vector> FindPath(TreeNode root,int expectNumber) { if(!root) return res;
dfs(root, expectNumber, res, path);
return res;
}
void dfs(TreeNode* root, int sum, vector<vector<int>>& res, vector<int>& path)
{
path.push_back(root -> val);
if(root -> val == sum && !root -> left && !root -> right)
{
res.push_back(path);
}
if(root -> left) dfs(root -> left, sum - root -> val, res, path);
if(root -> right) dfs(root -> right, sum - root -> val, res, path);
path.pop_back();
}
};

京公网安备 11010502036488号