Problem:
思路:
Solution (C++):
public:
vector<vector<int>> pathSum(TreeNode* root, int sum) {
vector<vector<int>> res;
vector<int> path;
pathSum(res, sum, root, path);
return res;
}
private:
void pathSum(vector<vector<int>> &res, int sum, TreeNode *root, vector<int> &path) {
if (!root) return;
path.push_back(root->val);
if (sum == root->val && !(root->left) && !(root->right))
res.push_back(path);
pathSum(res, sum - root->val, root->left, path);
pathSum(res, sum - root->val, root->right, path);
path.pop_back();
}
性能:
Runtime: 20 ms Memory Usage: 19.9 MB