Path Sum II leetcode java
2014-07-31 03:21
447 查看
题目: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 1return
[ [5,4,11,2], [5,8,4,5] ] 题解: 这道题除了要判断是否有这样的一个path sum,还需要把所有的都可能性结果都返回,所以就用传统的DFS递归解决子问题。代码如下:1 public void pathSumHelper(TreeNode root, int sum, List <Integer> sumlist, List<List<Integer>> pathlist){2 if(root==null)3 return;4 sumlist.add(root.val);5 sum = sum-root.val;6 if(root.left==null && root.right==null){7 if(sum==0){8 pathlist.add(new ArrayList<Integer>(sumlist));9 }}else{if(root.left!=null)pathSumHelper(root.left,sum,sumlist,pathlist);if(root.right!=null)pathSumHelper(root.right,sum,sumlist,pathlist);}sumlist.remove(sumlist.size()-1);}public List<List<Integer>> pathSum(TreeNode root, int sum) {List<List<Integer>> pathlist=new ArrayList<List<Integer>>();List<Integer> sumlist = new ArrayList<Integer>();pathSumHelper(root,sum,sumlist,pathlist);return pathlist;}
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【113-Path Sum II(路径和)】
- 【leetcode】113. Path Sum II【java】
- leetcode:Path Sum II 【Java】
- [Leetcode][JAVA] Path Sum I && II
- [LeetCode][Java] Path Sum II
- LeetCode 113. Path Sum II(java)
- LeetCode Path Sum II in Java
- 【LeetCode】113. Path Sum II 基于Java和C++的解法及分析
- [leetcode-113]Path Sum II(java)
- Java for LeetCode 113 Path Sum II
- [Leetcode] Path Sum II (Java)
- LeetCode详解 之 Path Sum I and II(Java)
- LeetCode-Path Sum II
- [leetcode]Path Sum II
- LeetCode_Path Sum II
- LeetCode 113: Path Sum II
- [LeetCode] Unique Paths、Unique Paths II、Minimum Path Sum
- leetcode -- Path Sum II
- [LeetCode 112 113] - 路径和I & II (Path Sum I & II)
- leetcode--Path Sum II