Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public List<List<Integer>> pathSum(TreeNode root, int sum) {
- List<List<Integer>> allPaths = new ArrayList();
- if(root == null) return allPaths;
- List<Integer> path = new ArrayList();
- dfs(root, path, allPaths, sum);
- return allPaths;
- }
- private void dfs(TreeNode root, List<Integer> path, List<List<Integer>> allPaths, int sum) {
- path.add(root.val);
- if(root.left != null){
- dfs(root.left, path, allPaths, sum-root.val);
- }
- if(root.right != null){
- dfs(root.right, path, allPaths, sum-root.val);
- }
- if(root.left == null && root.right == null){
- if(sum == root.val){
- List<Integer> onePath = new ArrayList(path);
- allPaths.add(onePath);
- }
- }
- path.remove(path.size()-1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement