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 andsum = 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> list=new ArrayList >();12 ArrayList arry=new ArrayList ();13 14 public List
> 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