题解方法
深度优先搜索
- do 访问节点:
- If NULL,return。
- 添加当前节点。
- If 叶子节点,判断路径总和是否等于给定目标和的路径。
- 递归访问左右子节点。
- 移除当前节点。
核心代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public void search(TreeNode root, List<Integer> path) { if (root == null) { return; }
path.add(root.val);
if (root.left == null && root.right == null) { int sum = path.stream().mapToInt(Integer::intValue).sum(); if (sum == target) { paths.add(new ArrayList<>(path)); } } search(root.left, path); search(root.right, path);
path.remove(path.size() - 1); }
|
题目来源
二叉树中和为某一值的路径 - 力扣(LeetCode)