Leetcode 113. 路径总和 II

Leetcode 113:路径总和 II(最详细的解法!!!) 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \... 阅读详情

题目

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。

说明: 叶子节点是指没有子节点的节点。
在这里插入图片描述
来自力扣:leetcode 113. 路径总和 II

解答

本题是 Leetcode 112. 路径总和 的变种题,只需要将走过的路径保存下来即可。

最简单的方法是 递归解法 。

递归步骤如下:

  1. 使用一个 cur 列表保存已经走过的路径,遍历完左右子树后再回退。
  2. 当到达叶子结点时,如果符合条件,就把当前的路径 cur 加入结果集 res 中。

非递归解法不再详述,有兴趣可看前一篇博客:Leetcode 112. 路径总和

代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<List<Integer>> pathSum(TreeNode root, int sum) {
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> cur = new ArrayList<>();
        pathSum(root, sum, cur, res);
        return res;
    }
    
    
    private void pathSum(TreeNode node, int sum, List<Integer> cur, List<List<Integer>> res) {
        if(node == null) return;
        
        cur.add(node.val);
        
        if(node.left == null && node.right == null && sum == node.val) {
            res.add(new ArrayList<>(cur));
        }
        
        if(node.left != null) {
            pathSum(node.left, sum - node.val, cur, res);
        }
        
        if(node.right != null) {
            pathSum(node.right, sum - node.val, cur, res);
        }
        
        cur.remove(cur.size() - 1);
    }
}
结果

在这里插入图片描述

Java实现 LeetCode 113 路径总和 II 113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 ... 阅读详情

相关推荐

【中等】力扣算法题解析LeetCode113:路径总和 II

题目要求找出二叉树中所有从根节点到叶子节点的路径,使得路径上节点值的和等于给定的目标和。采用深度优先搜索(DFS)方法,通过递归遍历所有路径,动态记录当前路径节点值,并在叶子节点处检查剩余目标值是否为0。若满足条件,则将当前路径加入结果集。关键点在于递归过程中进行路径回溯,确保状态正确。Java实现中使用了动态数组(ArrayList)高效处理路径记录,时间复杂度为O(n),空间复杂度为O(n)。示例和代码展示了算法的具体流程和优化细节。

ylumwd的博客 427

Leetcode JAVA刷刷站(113)路径总和 ||

Leetcode JAVA刷刷站——路径总和 ||篇

m0_73399576的博客 538

LeetCode - #113 路径总和 II

我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。LeetCode 算法到目前我们已经更新到 112 期,我们会保持更新时间和进度(周一、周三、周五早上 9:00 发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:中等。

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 654

leetcode 437. 路径总和 III

题目描述: 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。 示例: root = [10,5,-3,3,2,null,11,3,-2,null,1]...

行走巨人国 1291

声发射传感器的工作原理是什么?

介绍声发射传感器的工作原理。

qq_39948394的博客 9246

从SAR信号到洪涝地图:基于Sentinel-1数据的水体快速提取实战

本文详细介绍了如何利用Sentinel-1 SAR数据快速提取水体信息并生成洪涝地图的实战方法。通过预处理五部曲和SDWI指数计算,结合具体案例展示了SAR技术在洪涝灾害应急监测中的高效性和准确性,为救援决策提供关键支持。

weixin_29201313的博客 461

leetcode 112. 路径总和 java解题

题目描述: 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例:  给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13...

moots 969

【OpenFOAM】-olaFlow-算例1- baseWaveFlume

算例文件注释--olaFlow-算例1- baseWaveFlume

ou_no的博客 3639

LeetCode 113 路径总和 II

LeetCode 113 路径总和 II 题目链接 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1 返回: [ [5,4,11,2], [5,8,4,5]

旺崽的博客 2709

AI 大模型接口太零散?自建私有模型管理平台统一整合,管理使用超方便!(支持飞牛nas、群晖nas等服务器快速部署)

面对多种 AI 大模型接口难统一、管理繁琐的问题🤯,本文分享一款超实用开源网关工具⚡,可聚合各大模型、自动转接口、支持可视化管理,Docker 一键部署,大幅降低开发与维护成本🚀

XiaoqiangClub的博客 266

Vue 前端导出页面A4大小pdf,Vue前端导出pdf自动切割换页不切割内容 Vue导出页面pdf自动分页和添加页码 导出的pdf提高清晰度

【代码】Vue 前端导出页面A4大小pdf,Vue前端导出pdf自动切割换页不切割内容 Vue导出页面pdf自动分页和添加页码 导出的pdf提高清晰度。

weixin_41346436的博客 1797

LeetCode第113题_路径总和II

给你二叉树的根节点root和一个整数目标和targetSum,找出所有路径总和等于给定目标和的路径。是指没有子节点的节点。

qq_40263592的博客 1833

面经-2023-联发科MTK-数字芯片设计

面经-2023-联发科MTK-数字芯片设计

w0shishabi的博客 2943

LeetCode 力扣 113. 路径总和 II

题目描述(中等难度) 112 题 的升级版,给定一个sum,输出从根节点开始到叶子节点,和为sum 的所有路径可能。 直接在 112 题 的基础上改了,解法没有新内容,大家可以过去看一看。 解法一 递归 112 题 的解法是下边的样子。 public boolean hasPathSum(TreeNode root, int sum) { if (root == null) { ...

wind_liang的博客 927

脉冲变压器电感选型参数,结构原理,工艺与注意问题总结

脉冲变压器电感简称脉冲变压器,是一种特殊类型的变压器,主要用于处理脉冲信号。它的主要特性是能够在短时间内承受高电压和大电流。脉冲变压器主要用于开关电源、脉冲功率放大、雷达脉冲调制等领域。本文对脉冲变压器的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 1341

python ERA-5气象数据NetCDF格式解析(一)

python ERA-5气象数据NetCDF格式解析

weixin_43896283的博客 2637

leetcode 113.路径总和II

leetcode 113.路径总和II 题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22 5 / \ 4 8 / / \ 11 1...

EngineerHe的博客 834

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

leetcode 113. 路径总和 II

leetcode 113. 路径总和 II 题目详情 题目链接 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1 返回: [ [5,4,11,2], [5,8,4,5] ] 我的代码 /** * Definition for a binary tree node

qq_33789406的博客 1303

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

力扣113. 路径总和 II(Java实现)

遍历到d时,d的上层节点的路径和是2,加上d这一层的路径,一共是3。注意:在遍历到叶子节点时,我们判断一下 上一层路径和 + 叶子节点路径 是否等于 目标路径和。f 为叶子节点,其上层节点路径和 + f节点路径 = 2 + 1 = 3。b 去遍历右子树e,e的上层节点的路径和 = 2,加上e这一层路径,一共是4。函数的第一个参数是当前遍历的节点,第二个参数是当前节点的上一层节点的路径总和。**f(b)**的左右子树都调用完了,把b从全局路径中去掉,返回到。a的左子树调用完了,a再调用右子树。

Wood_Like的博客 445

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Leetcode113. 路径总和 II

Leetcode113. 路径总和 II 题目: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1 返回: [

会流泪de鱼的博客 213

力扣(LeetCode)113. 路径总和 II

113. 路径总和 II 问题 给你二叉树的根节点 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

Ackerman2的博客 459

LeetCode 113. 路径总和 II

LeetCode 113. 路径总和 II 题目 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ /...

Ailecccc的博客 184

leetcode113. 路径总和 II

leetcode113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...

peony的博客 163

Leetcode 113. 路径总和 II C++

Leetcode 113. 路径总和 II 题目 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 测试样例 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1 返回: [ [5,4,11,2], [5,8,4,5]

weixin_43750513的博客 244

Leetcode113. 路径总和 Path Sum II(Java)

Leetcode113. 路径总和 Path Sum II(Java) ##Tree##, ##Depth-first Search## 路径总和II 参考Leetcode112路径总和,用回溯法 因为需要找到所有路径,因此需要DFS整棵子树 dfs(TreeNode root, int sum)表示找到所有从root出发,到叶节点和为sum的路径的函数 递归遍历左右儿子结点,以左儿子结点为例dfs(root.left, sum - root.val)表示找到所有从root.left出发,到叶子节点和为s

qq_42411921的博客 206
上一篇: Leetcode 112. 路径总和
下一篇: Leetcode 114. 二叉树展开为链表
一纸浮萍
博客等级 码龄9年 11粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值