二叉树中和为某一值的路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
vector<vector<int>> pathSum(TreeNode* root, int sum) {
vector<vector<int>> paths;
vector<int> path;
DFS (root, sum, path, paths);
return paths;


}
void (TreeNode* root, int sum, vector<int>& path, vector<vector<int>>& paths) {
if (root == nullptr) {
return ;
}
path.push_back(root->val);
if (root->left == nullptr && root->right == nullptr && root->val == sum) {
paths.push_back(path);
}
DFS (root->left, sum - root->val, path, paths);
DFS (root->right, sum - root->val, path, paths);
path.pop_back();
}
}
  • DFS 函数 返回值设为 void
  • path.pop_back()

删除vector 容器末尾元素