文章目录

  • 题目描述
  • 思路 & 代码

题目描述

  • 说实话确实比I & II要恶心一点
  • 这里直接用双递归秒了(今天才发现我是之前先写的III,再写的I & II)
  • 有前缀和的写法,但是懒得整了= =

思路 & 代码

  • 和之前不同,这里对起点、终点不要求是根和叶子,只要求路径向下。
  • 分成两种情况递归:路径包含当前结点,路径不包含当前结点。
/*** 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 {int ans = 0;public int pathSum(TreeNode root, int targetSum) {if(root == null){return 0;}// 不算 root 在内的,左右可行的情况pathSum(root.right, targetSum);pathSum(root.left, targetSum);// 算 root 在内的bfs(root, targetSum, 0);return ans;}void bfs(TreeNode root, int targetSum, int nowNum){if(root == null){return;}nowNum += root.val;if(nowNum == targetSum){ans++;}bfs(root.left, targetSum, nowNum);bfs(root.right, targetSum, nowNum);}
}
  • 无注释版
class Solution {int ans = 0;public int pathSum(TreeNode root, int targetSum) {if(root == null) {return 0;}pathSum(root.left, targetSum);pathSum(root.right, targetSum);find(root, targetSum);return ans;}public void find(TreeNode root, int targetSum) {if(root == null) {return;}if(root.val == targetSum) {ans++;}find(root.left, targetSum - root.val);find(root.right, targetSum - root.val);}
}

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

  1. LeetCode 437. 路径总和 III(双重递归)

    1. 题目 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二 ...

  2. 【LeetCode】【HOT】437. 路径总和 III(DFS)

    [LeetCode][HOT]437. 路径总和 III 文章目录 [LeetCode][HOT]437. 路径总和 III package hot;class TreeNode{int val;Tr ...

  3. LeetCode 371. 两整数之和(异或操作) / 639. 解码方法 II(动态规划)/ 437. 路径总和 III

    371. 两整数之和 2021.9.26 每日一题 题目描述 给你两个整数 a 和 b ,不使用 运算符 + 和 - ​​​​​​​,计算并返回两整数之和. 示例 1: 输入:a = 1, b = 2 ...

  4. LeetCode 437. 路径总和 III

    437. 路径总和 III 思路: 深度优先搜索,暴力搜索: 递归遍历每一个节点的所有可能路径,然后将这些路径书目加起来即为返回结果 首先定义rootSum(p,val)表示以节点p为起点向下且满足路 ...

  5. Leetcode 437.路径总和III

    路径总和III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). ...

  6. leetcode - 437. 路径总和 III

    给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二叉树不超过1 ...

  7. leetcode 437. Path Sum III | 437. 路径总和 III(DFS,前缀和)

    题目 https://leetcode.com/problems/path-sum-iii/ 题解 DFS+前缀和问题,注意节点可能为 0 的情况(也是因此发现应该用 HashMap 记录前缀和的个数 ...

  8. 437. 路径总和 III

    给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二叉树不超过1 ...

  9. leetcode437. 路径总和 III

    437. 路径总和 III 难度中等1075 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目. 路径 不需要从根 ...

最新文章

  1. SAP SD基础知识之现金销售
  2. pthread多线程编程的学习小结
  3. PHP判断远程图片或文件是否存在
  4. vim文本编辑器的配置vimrc
  5. Java发射子弹出错_能帮我看看这个子弹的坐标哪里错了吗
  6. python实现简单爬虫百度首页_python实现简单爬虫功能的示例
  7. xdebug断点调试原理
  8. u 20ubuntu 安装 postfix_汽车天线安装指南
  9. 伸缩Kubernetes到2500个节点中遇到的问题和解决方法
  10. Tomcat项目get请求中参数乱码问题
  11. springBoot+JSP搭建项目
  12. Hamcrest匹配器框架
  13. 百度地图设置卫星地图显示图文教程
  14. Win10锁屏之后屏幕自动关闭怎么办
  15. SparkStreaming面试题
  16. 【yarn】 yarn的安装和使用
  17. Cesium实践(4)——空间数据加载
  18. 城市轨道交通信号系统学习笔记(一)信号系统的特点
  19. oracle lag、lead函数
  20. JS逆向案例文章推荐

热门文章

  1. redis创建像mysql表结构_Redis数据结构列表实现
  2. mysql面试考点_mysql面试知识点
  3. android 人脸识别_小模型,高精度!小视科技推出极致轻量型人脸识别SDK
  4. samba安装_Centos安装Samba
  5. win10调节屏幕亮度_自动调节电脑屏幕亮度软件,保护你的眼睛
  6. github注册账号一直验证失败
  7. 数字图像处理实验四图像频域增强
  8. 给你的Linux把把脉(内存、磁盘、CPU、网络)
  9. kettle创建mysql资源库
  10. Scrapy源码阅读分析_1_整体框架和流程介绍