import java.util.ArrayList; public class BinarySumII { private static ArrayList<Integer> list=new ArrayList<Integer>(); private static ArrayList<ArrayList<Integer>> lists=new ArrayList<ArrayList<Integer>>(); public static ArrayList<ArrayList<Integer>> findPath(TreeNode root,int target){ if (root==null){ return lists; } target-=root.val; list.add(root.val); if (target==0&&root.left==null&&root.right==null){ int i=0; while (i<lists.size()&&list.size()<lists.get(i).size()){ i++; } lists.add(i,new ArrayList<>(list)); }else { findPath(root.left,target); findPath(root.right,target); } list.remove(list.size()-1); return lists; } //这是我的代码,简单的递归,注意最后要 list.remove(list.size()-1);如果没找到,则删除,牛客还要求要路径长的放在前面,所以简单判断一下就ok了。
3 5

相关推荐

牛客网
牛客企业服务