二叉树中和为某一值的路径

来源:互联网 发布:外汇收入 知乎 编辑:程序博客网 时间:2024/06/05 15:24

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class Solution {    vector<vector<int> >res;//保存最终结果    vector<int>tmp;//处理每一层public:    vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {          findNode(root,expectNumber);       return res;    }    void findNode(TreeNode* root,int exp)    {        if(root == NULL)             return ;            tmp.push_back(root->val);        if(!root->left&&!root->right&&root->val==exp)        {            res.push_back(tmp);        }        else        {           if(root->left)                findNode(root->left,exp-(root->val));            if(root->right)                findNode(root->right,exp-(root->val));        }        tmp.pop_back();   }};
原创粉丝点击