美文网首页
113. Path Sum II

113. Path Sum II

作者: juexin | 来源:发表于2017-01-07 18:52 被阅读0次

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
    For example:
    Given the below binary tree and sum = 22,

              5
             / \
            4   8
           /   / \
          11  13  4
         /  \    / \
        7    2  5   1
    

    return
    [
    [5,4,11,2],
    [5,8,4,5]
    ]

    class Solution {
    public:
        vector<vector<int>> pathSum(TreeNode* root, int sum) {
            vector<vector<int>> result;
            vector<int> a;
            dfs(root,sum,a,result);
            return result;
        }
        void dfs(TreeNode* root,int sum,vector<int> &a,vector<vector<int>> &result)
        {
            if(root == NULL)
              return;
            a.push_back(root->val);
            if(root->left == NULL&&root->right == NULL)
              if(sum-root->val == 0)
                result.push_back(a);
            
            dfs(root->left,sum-root->val,a,result);
            dfs(root->right,sum-root->val,a,result);
            a.pop_back();
        }
    };
    

    相关文章

      网友评论

          本文标题:113. Path Sum II

          本文链接:https://www.haomeiwen.com/subject/idbfbttx.html