/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int> > pathSum(TreeNode *root, int sum) { vector<vector<int> > result; if(root == NULL) { return result; } if(root->left == NULL && root->right == NULL) { if(sum == root->val) { vector<int> temp{root->val}; result.emplace_back(temp); return result; } } if(root->left != NULL) { auto ret = pathSum(root->left, sum - root->val); for(vector<int>& v: ret) { vector<int> newV{root->val}; for(int i : v) { newV.emplace_back(i); } result.emplace_back(newV); } } if(root->right != NULL) { auto ret = pathSum(root->right, sum - root->val); for(vector<int>& v: ret) { vector<int> newV{root->val}; for(int i : v) { newV.emplace_back(i); } result.emplace_back(newV); } } return result; } };
4/14/2014
Leetcode -- Path Sum II
Very simple recursion question
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment