vector<vector<int> > pathSum(TreeNode* root, int sum) { vector<vector<int> > result,left,right; if(!root) return result; if(!root->left&&!root->right&&sum==root->val) return {{root->val}}; if(root->left) { left=pathSum(root->left,sum-root->val); for(auto i : left) { i.insert(i.begin(), root->val); result.push_back(i); } } if(root->right) { right=pathSum(root->right,sum-root->val); for(auto i : right) { i.insert(i.begin(), root->val); result.push_back(i); } } return result; }