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 sum = 22
,
5 / 4 8 / / 11 13 4 / / 7 2 5 1
return
[ [5,4,11,2], [5,8,4,5] ]
1。下面的搜索总超时,可能我写的不好

1 /** 2 * Definition for binary tree 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 ArrayList<ArrayList<Integer>> list=new ArrayList<ArrayList<Integer>>(); 12 ArrayList<Integer> arry=new ArrayList<Integer>(); 13 14 public List<List<Integer>> pathSum(TreeNode root, int sum) { 15 16 if(root==null) return (List)list; 17 if(root.right==null&&root.left==null) 18 { 19 if(sum==root.val) 20 { 21 22 list.add(new ArrayList(arry)); 23 } 24 } 25 26 arry.add(root.val); 27 pathSum(root.right,sum-root.val); 28 29 30 pathSum(root.left,sum-root.val); 31 32 33 return (List)list; 34 35 36 37 38 39 } 40 41 42 43 }
iew Co