【LeetCode笔记】112 113. 路径总和 I II(Java、递归、DFS)
文章目录
- 路径总和 I
- 路径总和 II
比较简单,就连着一起写了
路径总和 I
- 注意:一定得走到叶子才算
- 直接看代码吧,注释也就几行。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {// 递归解决战斗public boolean hasPathSum(TreeNode root, int targetSum) {// 递归结束条件if(root == null){return false;}// 找到结果条件if(targetSum == root.val && root.left == null && root.right == null){return true;}// 往左右继续递归return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);}
}
路径总和 II
- 相当于在 I 的基础上,加入了一个路径的存储、修改
- 注意。。存储的路径要 new 出来再存入
class Solution {List<List<Integer>> ans = new ArrayList<List<Integer>>();LinkedList<Integer> path = new LinkedList<>();public List<List<Integer>> pathSum(TreeNode root, int targetSum) {find(root, targetSum);return ans;}void find(TreeNode root, int targetSum){// 递归结束条件if(root == null){return;}// 路径在递归前后进行增减path.add(root.val);// 找到答案的情况if(targetSum == root.val && root.left == null && root.right == null){ans.add(new LinkedList<>(path));}find(root.left, targetSum - root.val);find(root.right, targetSum - root.val);path.removeLast();}
}
【LeetCode笔记】112 113. 路径总和 I II(Java、递归、DFS)相关推荐
- leetcode 112. Path Sum, 113. Path Sum II | 112,113. 路径总和 I, II(Java)
题目 https://leetcode.com/problems/path-sum/ https://leetcode.com/problems/path-sum-ii/ 题解 简单的遍历二叉树,不解 ...
- 【LeetCode笔记】437. 路径总和III(Java、双重递归、二叉树)
文章目录 题目描述 思路 & 代码 题目描述 说实话确实比I & II要恶心一点 这里直接用双递归秒了(今天才发现我是之前先写的III,再写的I & II) 有前缀和的写法,但 ...
- 【LeetCode笔记】543. 二叉树的直径(Java、dfs、二叉树)
文章目录 题目描述 思路 & 代码 题目描述 思路 & 代码 由这个结论考虑:直径中一定有一个父结点,那么当前直径长度就是: 当前父结点的左子树深度 + 右子树深度 那么,只要遍历所有 ...
- 【LeetCode笔记】104. 二叉树的最大深度(Java、DFS、二叉树)
文章目录 题目描述 代码 & 思路 题目描述 全局变量ans,遍历一遍树更新ans即可 带着 depth 跑 DFS 代码 & 思路 写成dfs了,确实是bfs /*** Defini ...
- 【LeetCode笔记】17.电话号码的字母组合(Java、DFS)
文章目录 题目描述 代码 & 思路 题目描述 得建立映射,其实用数组来建立也行,看起来还比较直观. 代码 & 思路 理好DFS的过程就行,整体思路不难 当递归字符length = 1时 ...
- LeetCode 112. 路径总和 、113. 路径总和 II 思考分析
目录 112. 路径总和 题目 递归解 递归解,其他人的解法 迭代解,其他人的解法 113. 路径总和 II 题目 递归解 递归解,参考别人的思路 112. 路径总和 题目 给定一个二叉树和一个目标和 ...
- Java实现 LeetCode 113 路径总和 II
113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...
- 113. 路径总和 II golang
113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...
- LeetCode-笔记-112、路径总和
LeetCode-笔记-112.路径总和 112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节 ...
最新文章
- 任意用户密码重置(四):重置凭证未校验
- 如何用mysql创建orders表_《MySQL必知必会》学习笔记
- Lock与synchronized 的区别
- 【完整代码】Scala AKKA实现两个Actor之间的通信代码示例
- ASP.NET MVC 源代码 剖析
- 【Linux】进程间通信-信号量详解及编程实例
- 怀念童年啊!周二下午没有动画片……
- ASP.NET MVC中的统一化自定义异常处理
- [转载] Java 单例(Singleton)类
- 关于webpack编译scss文件
- android webview 播放swf 失败彻底解决黑框
- matlab中imcrop函数的具体使用
- 马化腾回应《腾讯没有梦想》是网友杜撰PS
- Shadow SSDT
- 我做实施交付那些年——说点废话(1)
- Excel ChartType 属性的说明帮助(VBA)
- Mina的zkApp
- ChatGPT官方API可以抢先体验了
- JavaScript笔记 var e=e||window.event
- Unix/Linux头文件说明
热门文章
- 下取整函数的含义_取整函数解读
- idea整合jboos_在 idea 中 启动 jboss 后, 没有运行部署(通过idea部署)的ssm项目,打开后项目404...
- cad快捷键文件路径_办公格式转太难不会看这里!CAD、PDF、Word、Excel、TXT教你玩转...
- 西华大学c语言期末成绩占比例,期末成绩开始录入!优秀率一般不得超过20%
- Halcon学习笔记:select_points_object_model_3d(3D对象模型阀值分割)
- MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理
- Python利用turtle绘制五角星
- pytorch数据预处理
- 菜鸟教程 之 JavaScript 实例
- 小甲鱼 OllyDbg 教程系列 (十三) : 把代码和变量注入程序 以及 硬件断点