【LeetCode笔记】437. 路径总和III(Java、双重递归、二叉树)
文章目录
- 题目描述
- 思路 & 代码
题目描述
- 说实话确实比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、双重递归、二叉树)相关推荐
- LeetCode 437. 路径总和 III(双重递归)
1. 题目 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二 ...
- 【LeetCode】【HOT】437. 路径总和 III(DFS)
[LeetCode][HOT]437. 路径总和 III 文章目录 [LeetCode][HOT]437. 路径总和 III package hot;class TreeNode{int val;Tr ...
- LeetCode 371. 两整数之和(异或操作) / 639. 解码方法 II(动态规划)/ 437. 路径总和 III
371. 两整数之和 2021.9.26 每日一题 题目描述 给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和. 示例 1: 输入:a = 1, b = 2 ...
- LeetCode 437. 路径总和 III
437. 路径总和 III 思路: 深度优先搜索,暴力搜索: 递归遍历每一个节点的所有可能路径,然后将这些路径书目加起来即为返回结果 首先定义rootSum(p,val)表示以节点p为起点向下且满足路 ...
- Leetcode 437.路径总和III
路径总和III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). ...
- leetcode - 437. 路径总和 III
给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二叉树不超过1 ...
- leetcode 437. Path Sum III | 437. 路径总和 III(DFS,前缀和)
题目 https://leetcode.com/problems/path-sum-iii/ 题解 DFS+前缀和问题,注意节点可能为 0 的情况(也是因此发现应该用 HashMap 记录前缀和的个数 ...
- 437. 路径总和 III
给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二叉树不超过1 ...
- leetcode437. 路径总和 III
437. 路径总和 III 难度中等1075 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目. 路径 不需要从根 ...
最新文章
- SAP SD基础知识之现金销售
- pthread多线程编程的学习小结
- PHP判断远程图片或文件是否存在
- vim文本编辑器的配置vimrc
- Java发射子弹出错_能帮我看看这个子弹的坐标哪里错了吗
- python实现简单爬虫百度首页_python实现简单爬虫功能的示例
- xdebug断点调试原理
- u 20ubuntu 安装 postfix_汽车天线安装指南
- 伸缩Kubernetes到2500个节点中遇到的问题和解决方法
- Tomcat项目get请求中参数乱码问题
- springBoot+JSP搭建项目
- Hamcrest匹配器框架
- 百度地图设置卫星地图显示图文教程
- Win10锁屏之后屏幕自动关闭怎么办
- SparkStreaming面试题
- 【yarn】 yarn的安装和使用
- Cesium实践(4)——空间数据加载
- 城市轨道交通信号系统学习笔记(一)信号系统的特点
- oracle lag、lead函数
- JS逆向案例文章推荐