题解 | #二叉树中和为某一值的路径(二)#
二叉树中和为某一值的路径(二)
https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca
vector<vector<int>> res;
void dfs(TreeNode* root, int expectNumber, vector<int>& ret) {
ret.push_back(root->val);
if (root->left != nullptr) {
vector<int> ret1(ret);
dfs(root->left, expectNumber, ret1);
}
if (root->right != nullptr) {
vector<int> ret2(ret);
dfs(root->right, expectNumber, ret2);
}
if (root->left == nullptr && root->right == nullptr) {
int sum = 0;
for (auto val : ret) {
sum += val;
}
if(sum == expectNumber)
{
res.push_back(ret);
}
}
}
vector<vector<int>> FindPath(TreeNode* root, int expectNumber) {
vector<int> ret;
if (root == nullptr)
return res;
dfs(root, expectNumber, ret);
return res;
}