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

2019-07-31  本文已影响0人  HamletSunS

题目:求从根节点到叶子节点的路径权值和为某一个目标值的所有路径
思路:考察递归。
设计:

class Solution {
public:
    vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
        temp.clear();
        if(root==nullptr)
            return temp;
        vector<int> cach;
        getPath(root,expectNumber,cach);
        return temp;
        
    };
private:
    vector<vector<int>>  temp;
    void getPath(TreeNode* root,int target,vector<int> &cach){
        if(root->left==nullptr && root->right==nullptr){
            if(root->val==target){
                cach.push_back(root->val);
                temp.push_back(cach);
                cach.pop_back();
                            }
            return ;
        }
        cach.push_back(root->val);
        if(root->left!=nullptr){
            getPath(root->left,target-root->val,cach);
        }
        if(root->right!=nullptr)
            getPath(root->right,target-root->val,cach);
        cach.pop_back();
    }
};
上一篇 下一篇

猜你喜欢

热点阅读