/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: void ResFindPath(vector<vector<int> >&vec_vec,vector<int>vec,TreeNode* root,int expectNumber) { if(root==nullptr) { return; } //不计算本节点值 //ResFindPath(vec_vec,vec,root->right,expectNumber); //ResFindPath(vec_vec,vec,root->right,expectNumber); //计算本节点值 vec.emplace_back(root->val); if(expectNumber-root->val==0&&(root->left==nullptr&&root->right==nullptr)) { vec_vec.emplace_back(vec); return; } ResFindPath(vec_vec,vec,root->left,expectNumber-root->val); ResFindPath(vec_vec,vec,root->right,expectNumber-root->val); } vector<vector<int> > FindPath(TreeNode* root,int expectNumber) { vector<vector<int> > vec_vec_ret; vector<int> vec; ResFindPath(vec_vec_ret,vec,root,expectNumber); return vec_vec_ret; } };
原文:https://www.cnblogs.com/wangshaowei/p/12981602.html