/**
* 剑指 Offer 34. 二叉树中和为某一值的路径
* @author wsq
* @date 2020/09/10
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。
示例:
给定如下二叉树,以及目标和 sum = 22,
5
/ \
4 8
/ / \
11 13 4
/ \ / \
7 2 5 1
返回:
[
[5,4,11,2],
[5,8,4,5]
]
提示:
节点总数 <= 10000
链接:https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof
*/
package notsubmit;
import java.util.ArrayList;
import java.util.List;
public class PathSum {
public ArrayList<Integer> currList = new ArrayList<>();
public List<List<Integer>> ans = new ArrayList<>();
public int target;
public List<List<Integer>> pathSum(TreeNode root, int sum) {
target = sum;
findPath(root, 0);
return ans;
}
public void findPath(TreeNode node, int curSum){
if(node == null){
return;
}
curSum += node.val;
currList.add(node.val);
if(curSum == target && node.left == null && node.right == null){
ans.add(new ArrayList<>(currList));
}
findPath(node.left, curSum);
findPath(node.right, curSum);
currList.remove(currList.size() - 1);
}
}
剑指 Offer 34. 二叉树中和为某一值的路径
最新推荐文章于 2025-11-24 15:27:16 发布
本文介绍了一种算法,用于查找二叉树中所有节点值之和等于特定目标值的路径。通过递归方式遍历树的每个节点,记录当前路径上的节点值,并在达到叶子节点且路径和等于目标值时,保存该路径。此算法适用于解决LeetCode题目“二叉树中和为某一值的路径”。
534

被折叠的 条评论
为什么被折叠?



