1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
import java.util.ArrayList;
public class { public ArrayList<ArrayList<Integer>> FindPath(TreeNode root, int target) { ArrayList<ArrayList<Integer>> res = new ArrayList<>();
if (root == null) return res;
recursiveFindPath(root, target, 0, new ArrayList<Integer>(), res);
return res; }
private void recursiveFindPath(TreeNode n, int t, int sum, ArrayList<Integer> path, ArrayList<ArrayList<Integer>> res) { if (n == null) return;
sum += n.val; path.add(n.val);
if (n.left == null && n.right == null) { if (sum == t) { res.add(new ArrayList(path)); } }
recursiveFindPath(n.left, t, sum, path, res); recursiveFindPath(n.right, t, sum, path, res); path.remove(path.size() - 1); } }
|
近期评论