24、二叉树中和为某一值的路径
题目描述:
输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
输入:
{10,5,12,4,7},22
输出:
[[10,5,7],[10,12]]
解法1:回溯方法
class Solution{
public:
void FindPathCore(vector<vector<int>>&result,vector<int>&temp,TreeNode* root,int sum){
if(root==nullptr)return;
temp.push_back(root->val);
if(root->left==nullptr&&root->left==nullptr&&sum==root->val){
result.push_back(temp);
}
else{
if(root->left){
FindPathCore(result,temp,root->left,sum-root->val);
}
if(root->right){
FindPathCore(result,temp,root->right,sum-root->val);
}
}
temp.pop_back();
}
vector<vector<int>>FindPath(TreeNode* root,int expectNumber){
vector<vector<int>>result;
vector<int>temp;
FindPathCore(result,temp,root,expectNumber);
return result;
}