当前位置: 首页 > 图灵资讯 > 技术篇> #yyds干货盘点# LeetCode程序员面试金典:路径总和 II

#yyds干货盘点# LeetCode程序员面试金典:路径总和 II

来源:图灵教育
时间:2023-05-26 09:38:58

题目:

给你二叉树的根节点 root 和整数目标和 targetSum ,找出所有 从根节点到叶节点 路径总和等于给定目标和路径。

叶子节点 是指没有子节点的节点。

示例 1:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22

输出:[5,4,11,2][5,8,4,5]

示例 2:

输入:root = [1,2,3], targetSum = 5

输出:[]

示例 3:

输入:root = [1,2], targetSum = 0

输出:[]

代码实现:

class Solution {    List<List<Integer>> ret = new LinkedList<List<Integer>>();    Deque<Integer> path = new LinkedList<Integer>();    public List<List<Integer>> pathSum(TreeNode root, int targetSum) {        dfs(root, targetSum);        return ret;    }    public void dfs(TreeNode root, int targetSum) {        if (root == null) {            return;        }        path.offerLast(root.val);        targetSum -= root.val;        if (root.left == null && root.right == null && targetSum == 0) {            ret.add(new LinkedList<Integer>(path));        }        dfs(root.left, targetSum);        dfs(root.right, targetSum);        path.pollLast();    }}