题目

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

思路

思路很简单,但是说起来很费劲,贴个链接吧:https://blog.csdn.net/niqian6005/article/details/97960184

代码

class Solution {
public:
    vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
        if (!root)
        {
            return path1;
        }
        path2.push_back(root->val);
        expectNumber -= root->val;
        if ((!root->left) && (!root->right)&& (expectNumber == 0))
        {
            path1.push_back(path2);
        }
        FindPath(root->left, expectNumber);
        FindPath(root->right, expectNumber);
        path2.pop_back();
        return path1;
    }
private:
    vector<vector<int> > path1;
    vector<int> path2;
};