本文主要是介绍LeetCode 113 Path Sum II (DFS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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]
]
题目链接:https://leetcode.com/problems/path-sum-ii/
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
public class Solution {public void DFS(int curSum, int sum, TreeNode root, List<Integer> cur, List<List<Integer>> ans) {if(root == null) {return;}if(root != null && (root.left == null && root.right == null)) {if(curSum + root.val == sum) {cur.add(root.val);ans.add(new ArrayList<Integer>(cur));cur.remove(cur.size() - 1);}return;}cur.add(root.val);DFS(curSum + root.val, sum, root.left, cur, ans);DFS(curSum + root.val, sum, root.right, cur, ans);cur.remove(cur.size() - 1);}public List<List<Integer>> pathSum(TreeNode root, int sum) {List<List<Integer>> ans = new ArrayList<>();List<Integer> cur = new ArrayList<>();DFS(0, sum, root, cur, ans);return ans;}
}
这篇关于LeetCode 113 Path Sum II (DFS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!