leetcode- 113. Path Sum II

来源:互联网 发布:2016热门词汇网络词汇 编辑:程序博客网 时间:2024/06/15 10:43

一、问题描述

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) {        if(root==NULL)return res;        s = sum;        vector<int> tmp;        findPath(root,tmp,0);        return res;    }        void findPath(TreeNode* root,vector<int> tmp,int sum){        tmp.push_back(root->val);        sum+=root->val;        if(!root->left&&!root->right&&sum==s){            res.push_back(tmp);        } else {            if(root->left)                findPath(root->left,tmp,sum);            if(root->right)                findPath(root->right,tmp,sum);        }    }private:    vector<vector<int>> res;    int s;};


原创粉丝点击