leetcode题解-113-路径总和Ⅱ 发表于 2019-12-19 | 更新于 2019-12-25 题目 My way 递归实现 123456789101112131415161718192021222324252627282930313233343536373839404142/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {private: vector<vector<int>> res; void dfs(TreeNode* root, int& pathSum, int sum, vector<int>& path) { if (!root) return; pathSum += root->val; path.push_back(root->val); if (!root->left && !root->right && pathSum==sum) { res.push_back(path); } dfs(root->left, pathSum, sum, path); dfs(root->right, pathSum, sum, path); pathSum -= root->val; path.pop_back(); }public: vector<vector<int>> pathSum(TreeNode* root, int sum) { int pathSum = 0; vector<int> path; dfs(root, pathSum, sum, path); return res; }}; 简单递归即可实现 使用pathSum变量来记录当前root结点上的路径和