/**
* 问题 二叉树中和为某一值的路径
* 描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
* 知识点:DFS
*
* @param root
* @param target
* @return
*/
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
public ArrayList<ArrayList<Integer>> FindPath(TreeNode root, int target) {
if (root == null) return res;
FindPathHelp(root, new ArrayList<Integer>(), target, 0);
return res;
}
private void FindPathHelp(TreeNode root, ArrayList<Integer> list, int target, int sum) {
if (root.left == null && root.right == null) {
if ((sum + root.val) == target) {
list.add(root.val);
res.add(new ArrayList<>(list));
list.remove(list.size() - 1);
}
return;
}
list.add(root.val);
if (root.left != null) FindPathHelp(root.left, list, target, sum + root.val);
if (root.right != null) FindPathHelp(root.right, list, target, sum + root.val);
list.remove(list.size() - 1);
}
二叉树中和为某一值的路径
最新推荐文章于 2025-07-02 21:40:02 发布