437. 路径总和 III

难度中等1075

给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。

路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。

示例 1:

输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8
输出:3
解释:和等于 8 的路径有 3 条,如图所示。

示例 2:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
输出:3

提示:

  • 二叉树的节点个数的范围是 [0,1000]
  • -109 <= Node.val <= 109
  • -1000 <= targetSum <= 1000

通过次数113,792提交次数199,106

简单的二叉树遍历

执行结果:

通过

显示详情

添加备注

执行用时:36 ms, 在所有 C++ 提交中击败了23.10%的用户

内存消耗:15.3 MB, 在所有 C++ 提交中击败了54.81%的用户

通过测试用例:126 / 126

/*** 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 nRodeNum = 0;void rodesum(TreeNode* root,int targetSum,int CurrentNum){if(!root)return ;//cout<<root->val<<" "<<CurrentNum<<" ";CurrentNum += root->val;if(CurrentNum == targetSum)nRodeNum++;//cout<<CurrentNum<<endl;rodesum(root->left,targetSum,CurrentNum);//查看一下以当前节点为根节点的左子树上有没有rodesum(root->right,targetSum,CurrentNum);}void vist(TreeNode* root,int targetSum){if(!root)return ;rodesum(root,targetSum,0);vist(root->left,targetSum);vist(root->right,targetSum);}int pathSum(TreeNode* root, int targetSum) {vist(root,targetSum);return nRodeNum;}
};

leetcode437. 路径总和 III相关推荐

  1. Leetcode-437. 路径总和 III(Java)

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

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

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

  3. Leetcode 437.路径总和III

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

  4. LeetCode 437. 路径总和 III

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

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

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

  6. 路径总和 III—leetcode437

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

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

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

  8. 【数据结构与算法】之深入解析“路径总和III”的求解思路与算法示例

    一.题目要求 给定一个二叉树的根节点 root,和一个整数 targetSum,求该二叉树里节点值之和等于 targetSum 的路径的数目. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径 ...

  9. 437. 路径总和 III

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

最新文章

  1. metaq的简单封装dataChange解读
  2. Fedora20 优化体验
  3. Java multithread 多线程issue
  4. 谷歌微软等公司承诺大力投资于网络安全建设
  5. iphone--使用NSUserDefaults存储数据
  6. centos7 cuda测试_CentOS 7 安装cuda环境
  7. 问题三十六:ray tracing中的Inverse Mapping(4)——圆柱面Inverse Mapping
  8. 关于解决Windows server系统用户无法远程的问题
  9. 在GridView列中动态创建几个CheckBox
  10. 科沃斯扫地机器人电路原理图_科沃斯扫地机器人不工作故障维修(CEN550)
  11. 计算机网络原理(04741)课后习题答案
  12. 分析:谷歌不会退出中国市场的8大理由
  13. 终端字符乱码解决方法
  14. 【荐】JS实现类似星球仿flash效果的动态菜单
  15. python可以帮助做excel-超简单:用Python让Excel飞起
  16. MFC自用小工具源码
  17. 用python画风景图_数据分析与展示---Matplotlib基本绘图函数
  18. MySql·设置字符集编码
  19. jq 取 scrollHeight值
  20. 用python证明欧拉公式_欧拉公式怎么证明出来的?保证轻松让你看懂

热门文章

  1. python基础数据结构互转和2、8、10、16进制互转
  2. 05_DecisionTree_统计学习方法
  3. linux系统下修改某个文件夹下所有的文件权限
  4. 架构语言ArchiMate -应用层(Application Layer)
  5. 多线程生成的原因(Java内存模型与i++操作解析)
  6. Character Studio
  7. 《深入理解Linux内核》条目式笔记 _2
  8. 信息收集--IP扫描 (上篇)
  9. Ubuntu8.10安装小记
  10. c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: