leetcode Path Sum II
2015-10-20 15:33
211 查看
python:
c++:
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def __init__(self): self.paths = [] def recur (self, root, path, sum): if root.left==root.right==None: if root.val ==sum: self.paths.append(path+[sum]) return else: new_path = path+[root.val] if root.left!=None: self.recur(root.left,new_path,sum-root.val) if root.right!=None: self.recur(root.right,new_path,sum-root.val) def pathSum(self, root, sum): """ :type root: TreeNode :type sum: int :rtype: List[List[int]] """ if root==None : return []; self.recur(root,[],sum) return self.paths
c++:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int>> paths; vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<int> path; if (root==NULL) return paths; recur(root,path,sum); return paths; } void recur(TreeNode* root, vector<int>& path, int sum){ path.push_back(root->val); if (root->left==NULL && root->right==NULL){ if (root->val==sum) paths.push_back(path); path.pop_back(); return; } else{ if (root->left!=NULL) recur(root->left,path,sum-root->val); if (root->right!=NULL)recur(root->right,path,sum-root->val); path.pop_back();
<span style="white-space:pre"> </span> return; } } };
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解
- LeetCode [Day 5] Longest Palindromic Substring 题解