文章目录

  • 路径总和 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)相关推荐

  1. 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/ 题解 简单的遍历二叉树,不解 ...

  2. 【LeetCode笔记】437. 路径总和III(Java、双重递归、二叉树)

    文章目录 题目描述 思路 & 代码 题目描述 说实话确实比I & II要恶心一点 这里直接用双递归秒了(今天才发现我是之前先写的III,再写的I & II) 有前缀和的写法,但 ...

  3. 【LeetCode笔记】543. 二叉树的直径(Java、dfs、二叉树)

    文章目录 题目描述 思路 & 代码 题目描述 思路 & 代码 由这个结论考虑:直径中一定有一个父结点,那么当前直径长度就是: 当前父结点的左子树深度 + 右子树深度 那么,只要遍历所有 ...

  4. 【LeetCode笔记】104. 二叉树的最大深度(Java、DFS、二叉树)

    文章目录 题目描述 代码 & 思路 题目描述 全局变量ans,遍历一遍树更新ans即可 带着 depth 跑 DFS 代码 & 思路 写成dfs了,确实是bfs /*** Defini ...

  5. 【LeetCode笔记】17.电话号码的字母组合(Java、DFS)

    文章目录 题目描述 代码 & 思路 题目描述 得建立映射,其实用数组来建立也行,看起来还比较直观. 代码 & 思路 理好DFS的过程就行,整体思路不难 当递归字符length = 1时 ...

  6. LeetCode 112. 路径总和 、113. 路径总和 II 思考分析

    目录 112. 路径总和 题目 递归解 递归解,其他人的解法 迭代解,其他人的解法 113. 路径总和 II 题目 递归解 递归解,参考别人的思路 112. 路径总和 题目 给定一个二叉树和一个目标和 ...

  7. Java实现 LeetCode 113 路径总和 II

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

  8. 113. 路径总和 II golang

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

  9. LeetCode-笔记-112、路径总和

    LeetCode-笔记-112.路径总和 112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节 ...

最新文章

  1. 任意用户密码重置(四):重置凭证未校验
  2. 如何用mysql创建orders表_《MySQL必知必会》学习笔记
  3. Lock与synchronized 的区别
  4. 【完整代码】Scala AKKA实现两个Actor之间的通信代码示例
  5. ASP.NET MVC 源代码 剖析
  6. 【Linux】进程间通信-信号量详解及编程实例
  7. 怀念童年啊!周二下午没有动画片……
  8. ASP.NET MVC中的统一化自定义异常处理
  9. [转载] Java 单例(Singleton)类
  10. 关于webpack编译scss文件
  11. android webview 播放swf 失败彻底解决黑框
  12. matlab中imcrop函数的具体使用
  13. 马化腾回应《腾讯没有梦想》是网友杜撰PS
  14. Shadow SSDT
  15. 我做实施交付那些年——说点废话(1)
  16. Excel ChartType 属性的说明帮助(VBA)
  17. Mina的zkApp
  18. ChatGPT官方API可以抢先体验了
  19. JavaScript笔记 var e=e||window.event
  20. Unix/Linux头文件说明

热门文章

  1. 下取整函数的含义_取整函数解读
  2. idea整合jboos_在 idea 中 启动 jboss 后, 没有运行部署(通过idea部署)的ssm项目,打开后项目404...
  3. cad快捷键文件路径_办公格式转太难不会看这里!CAD、PDF、Word、Excel、TXT教你玩转...
  4. 西华大学c语言期末成绩占比例,期末成绩开始录入!优秀率一般不得超过20%
  5. Halcon学习笔记:select_points_object_model_3d(3D对象模型阀值分割)
  6. MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理
  7. Python利用turtle绘制五角星
  8. pytorch数据预处理
  9. 菜鸟教程 之 JavaScript 实例
  10. 小甲鱼 OllyDbg 教程系列 (十三) : 把代码和变量注入程序 以及 硬件断点