给定一个二叉树,它的每个结点都存放着一个整数值。

找出路径和等于给定数值的路径总数。

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

二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。

示例:

root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8

10
     /  \
    5   -3
   / \    \
  3   2   11
 / \   \
3  -2   1

返回 3。和等于 8 的路径有:

1.  5 -> 3
2.  5 -> 2 -> 1
3.  -3 -> 11

思路:先序遍历将所有结点都作为根结点

再先序遍历得出每个结点作为根节点时,路径和为目标值的结果

代码:

/**

* Definition for a binary tree node.

* public class TreeNode {

*     int val;

*     TreeNode left;

*     TreeNode right;

*     TreeNode(int x) { val = x; }

* }

*/

class Solution {

int count=0;

public int pathSum(TreeNode root, int sum) {

if(root==null) return 0;

helper(root,sum);

pathSum(root.left,sum);

pathSum(root.right,sum);

return count;

}

public void helper(TreeNode root, int sum){

if(root == null) return;

sum-=root.val;

if(sum == 0){

count++;

}

helper(root.left,sum);

helper(root.right,sum);

}

}

Leetcode-437. 路径总和 III(Java)相关推荐

  1. LeetCode 437. 路径总和 III

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

  2. Leetcode 437.路径总和III

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

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

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

  4. leetcode - 437. 路径总和 III

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

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

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

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

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

  7. LeetCode——113 路径总和 II(JAVA)

    给你二叉树的根节点 root和一个整数目标和 targetSum,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径. 叶子节点 是指没有子节点的节点. 示例 1: 输入:root = [5, ...

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

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

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

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

  10. 437. 路径总和 III

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

最新文章

  1. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍
  2. Python 报错解决:AttributeError: 'module' object has no attribute 'SSL_ST_INIT'
  3. 每天一个python 小案例——if else
  4. 《数据库系统概念》7-函数、存储过程、触发器
  5. 奥城大学计算机专业,美国研究生院,双录取的学校有哪些?都有什么专业?
  6. 3.11 结论和致谢-深度学习第五课《序列模型》-Stanford吴恩达教授
  7. flowvisor 命令_mininet+FlowVisor+OpenDayLight环境搭建及实验一
  8. SharePoint自动化系列——Add/Remove Record from items
  9. stm32串口通信(初学者对于串口通信的理解)
  10. 云炬随笔20180421
  11. php ajax 框架,PHP开发框架kohana中处理ajax请求的例子
  12. 用触发器实现表的同步操作
  13. 语音识别基本原理介绍之gmm-hmm续
  14. MATLAB程序设计的绘图函数
  15. hao123劫持浏览器主页
  16. 【Matlab代码】Sierpinsk地毯
  17. 转 js控制excel打印完美解决方案
  18. 机器学习(算法篇)——K-近邻算法
  19. C#毕业设计——基于C#+asp.net+sqlserver的设备管理系统设计与实现(毕业论文+程序源码)——设备管理系统
  20. 区块链架构与交易流程(fabric1.0)

热门文章

  1. 程序员面试金典 - 面试题 02.01. 移除重复节点(哈希set)
  2. hbase的2.2.4版本支持哪个版本的hadoop_Hadoop 2.7 不停服升级到 3.2 在滴滴的实践
  3. 用python写一个手机app签到脚本_利用Python实现App自动签到领取积分
  4. zeal刷新不出来_饥荒:游戏中的这些事物都是无中生有,几乎可以无限制刷新!...
  5. java sftp mget_总结三种Shell脚本编程中避免SFTP输入密码的方法
  6. python中的孤儿进程
  7. AcWing之找出不改变数组找到重复的数字
  8. 聊聊推荐系统中的偏差
  9. Github星标超3k的推荐系统入门资料合集(含教程、论文、代码、数据)
  10. 会议交流 | 第十五届全国知识图谱与语义计算大会(CCKS 2021)12月25日线上召开...