解法一:深度优先搜索
深搜,没啥特别的。
import java.util.LinkedList;import java.util.List;/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/class Solution {List<List<Integer>> ans;public List<List<Integer>> pathSum(TreeNode root, int sum) {ans = new LinkedList<>();dfs(root, sum, new LinkedList<>());return ans;}private void dfs(TreeNode root, final int sum, List<Integer> nums) {if (root == null) {return;}nums.add(root.val);if ((root.left == null) && (root.right == null)) {int temp = 0;for (int i : nums) {temp += i;}if (temp == sum) {ans.add(new LinkedList<>(nums));}nums.remove(nums.size() - 1);return;}dfs(root.left, sum, nums);dfs(root.right, sum, nums);nums.remove(nums.size() - 1);}}
