LeetCode刷题笔录Path Sum II
2014-08-02 00:24
381 查看
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
return
和之前Path Sum差不多,也是DFS。要在递归的时候记录当前的路径。
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] ]
和之前Path Sum差不多,也是DFS。要在递归的时候记录当前的路径。
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public ArrayList<ArrayList<Integer>> pathSum(TreeNode root, int sum) { ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>(); if(root == null) return result; ArrayList<Integer> curr = new ArrayList<Integer>(); //curr.add(root.val); recursive(root, sum, result, curr, 0); return result; } public void recursive(TreeNode root, int sum, ArrayList<ArrayList<Integer>> result, ArrayList<Integer> curr, int currSum){ if(root == null) return; currSum += root.val; curr.add(root.val); if(root.left == null && root.right == null && sum == currSum){ result.add(new ArrayList<Integer>(curr)); } if(root.left != null){ recursive(root.left, sum, result, curr, currSum); } if(root.right != null){ recursive(root.right, sum, result, curr, currSum); } curr.remove(curr.size() - 1); currSum -= root.val; return; } }
相关文章推荐
- Leetcode: Path Sum II
- [LeetCode] Unique Paths && Unique Paths II && Minimum Path Sum (动态规划之 Matrix DP )
- LeetCode - Path Sum II
- leetcode:Path Sum II
- LeetCode题解:Path Sum II
- LeetCode Path Sum II in Java
- [LeetCode]113. Path Sum II
- LeetCode | Path Sum II
- leetcode--Path Sum II
- LeetCode: Path Sum II
- [Leetcode] Path Sum II (Java)
- LeetCode Path Sum II
- Path Sum II - LeetCode 113
- [leetcode]Path Sum II
- LeetCode_Path Sum II
- LeetCode Path Sum II
- LeetCode113 Path Sum II
- Path Sum II--LeetCode
- LeetCode 113. Path Sum II
- LeetCode Path Sum II