LeetCode 437. 路径总和 III
437. 路径总和 III
思路:
深度优先搜索,暴力搜索:
递归遍历每一个节点的所有可能路径,然后将这些路径书目加起来即为返回结果
首先定义rootSum(p,val)表示以节点p为起点向下且满足路径总和为val的路径数目。
对二叉树的每个节点求出 rootSum(p,target),然后对这些路径数目求和即为返回结果
问题转化为以p为根节点 路径之和为targetSum的路径有多少条?
递归(深度优先搜索,暴力搜索)
int rootSum(p,targetSum):
以当前节点p为目标路径的起点递归向下进行搜索
假设当前的节点p为val
判断p->val是否等于targetSum
对左子树和右子树进行递归搜索:
对节点p的左孩子pl求出rootSum(pl,targetSum-val)
对节点p的右孩子节点pr求出rootSum(pr,targetSum-val)
节点p的rootsum(p,targetsum)=rootsum(pl,targetsum-val)+rootsum(pr,targetsum-val);
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int rootSum(TreeNode *root,int targetSum){int sum=0;if(root==NULL){return 0;}if(root->val==targetSum)sum++;sum+=rootSum(root->left,targetSum-root->val);sum+=rootSum(root->right,targetSum-root->val);return sum;}int pathSum(TreeNode* root, int targetSum) {
if(root==NULL)
return 0;
int n1=rootSum(root,targetSum);
int n2=pathSum(root->left,targetSum);
int n3=pathSum(root->right,targetSum);return n1+n2+n3;
}};
LeetCode 437. 路径总和 III相关推荐
- Leetcode 437.路径总和III
路径总和III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). ...
- LeetCode 437. 路径总和 III(双重递归)
1. 题目 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二 ...
- 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(Java、双重递归、二叉树)
文章目录 题目描述 思路 & 代码 题目描述 说实话确实比I & II要恶心一点 这里直接用双递归秒了(今天才发现我是之前先写的III,再写的I & II) 有前缀和的写法,但 ...
- 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 的 路径 的数目. 路径 不需要从根 ...
最新文章
- react 嵌套渲染_React 中嵌套数组数据如何渲染到前端页面
- 深刻揭示Python 与C/C++互动
- android 如何完全卸载Android Studio
- leetcode 16. 3Sum Closest | 16. 最接近的三数之和(双指针)
- 请求对象Request
- 简评黑客利器——中国菜刀
- MySQL 中锁的面试题总结
- android word设计模式,word07设计模式
- HP ILO2和JRE6(java runtime environment)
- 【渝粤教育】国家开放大学2018年春季 0175-22T社会调查研究与方法 参考试题
- “勒索文件”或可部分恢复
- 怎样用java抽签小程序,可以作弊的抽签小程序,急求java抽签小程序
- Hbase+JAVAWeb实现超市仓库管理系统
- python查看opencv版本
- 协调世界时转换为GPS周秒(转载)
- C# Word文档添加水印
- java poi导出pdf_Java POI 生成PDF文档,很给力!
- eclipse远程调试Java程序
- 阿里云周晶:基于融合与协同的边缘云原生体系实践
- java web项目 权限管理
热门文章
- CCF201909-4 推荐系统(100分)【模拟】
- HDU1066 Last non-zero Digit in N!【大数+模除】
- UVA216 UVALive5155 Getting in Line【全排列+回溯】
- I00033 消除游戏
- pandas 数据集的端到端处理
- 机器学习基础(二十一)—— 分类与回归、生成模型与判别模型
- c++ 开发虚拟摄像头_开发板有了,但我们要怎么玩?
- 开发安卓app游戏_「安卓APP开发流程」安卓APP如何开发的?
- delphi 获取数组长度_Java中的数组(基础篇六)
- json string 格式_Retrofit同时解析JSON和XML数据格式