Level:

  Easy

题目描述:

You are given a binary tree in which each node contains an integer value.

Find the number of paths that sum to a given value.

The path does not need to start or end at the root or a leaf, but it must go downwards (traveling only from parent nodes to child nodes).

The tree has no more than 1,000 nodes and the values are in the range -1,000,000 to 1,000,000.

Example:

root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 810/  \5   -3/ \    \3   2   11/ \   \
3  -2   1Return 3. The paths that sum to 8 are:1.  5 -> 3
2.  5 -> 2 -> 1
3. -3 -> 11

思路分析:

  由于题目中所说的路径,不局限于从根到叶子节点,任何一个节点都可以作为路径的开始节点和终止节点,所以我们以根节点作为开始节点,查找和为sum的路径数,然后分别以根的左孩子和右孩子为起始节点去查找和为sum的路径数,依次递归向下推导,得到最终的结果。

代码:

/**public class TreeNode{int vla;TreeNode left;TreeNode right;public TreeNode(int val){this.val=val;}
}*/
public class Soulution{public int pathSum(TreeNode root,int sum){if(root==null)return 0;int res=0;res=pathCheck(root,sum);res=res+pathSum(root.left,sum);res=res+pathSum(root.right,sum);return res;}public int pathCheck(TreeNode root,int sum){if(root==null)return 0;int count=0;if(sum==root.val)//当sum等于root.val时证明存在一条路径和为sumcount++;count=count+pathCheck(root.left,sum-root.val);count=count+pathCheck(root.right,sum-root.val);return count;}
} 

转载于:https://www.cnblogs.com/yjxyy/p/10703197.html

9.path Sum III(路径和 III)相关推荐

  1. [Leetcode] Path Sum II路径和

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...

  2. 64. Minimum Path Sum 最小路径和

    给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [[1,3,1],[1,5,1],[4, ...

  3. 18/100. Path Sum III

    给定一个二叉树和一个整数sum,二叉树的每个节点都是一个整数(正.负),找出能满足节点值相加等于sum的路径总数. 从根结点开始,一个一个节点地往下找. 从根结点开始往下找,sum值也一步一步往下减, ...

  4. Leetcode 437.路径总和III

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

  5. LeetCode 437. 路径总和 III

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

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

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

  7. 二叉树:路径之和 Path Sum

    给定一个二叉树与整数sum,找出所有从根节点到叶结点的路径,这些路 径上的节点值累加和为sum 即创建一个二叉树,要求二叉树中有一个路径从根节点到叶节点到路径加起来代表到和为 给定的sum 如下二叉树 ...

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

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

  9. leetcode437. 路径总和 III

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

最新文章

  1. CMakeLists.txt文件如何编写?(一 基础篇)
  2. Mandriva学习笔记之八:安装Redis2.2.14
  3. 快速查看linux命令的用法----------TLDR
  4. MyEclipse下SVN的配置(下载及其配置)
  5. 响应对象Response
  6. QT实现图像处理-傅立叶变换、傅立叶反变换、平滑、锐化与模板匹配
  7. 准备了2个月零21天,面试字节跳动挂在了第三面JVM上
  8. python里面装数据库_python 安装操作 MySQL 数据库.
  9. python unittest接口测试_python+request+unittest 接口测试练习
  10. 软件质量属性:易用性
  11. vue2整合echarts5.0
  12. python查询mysql decimal报错_【2020Python修炼记】MySQL之 表相关操作
  13. 全球与中国压电比例阀市场深度研究分析报告
  14. 台式计算机怎样能搜无线连接,台式机怎样能够连入wifi呢
  15. Google新的搜索页面
  16. matlab课程设计语音,语音伪装课程设计代码,求助
  17. 史上最全Nginx配置优化
  18. vue-router mode两种模式
  19. 音频剪切、合成、淡入淡出
  20. echarts使用笔记总结3:series使用方法

热门文章

  1. SELinux与强制访问控制系统应用
  2. 【前端】纯前端的一个‘喜欢我吗?’
  3. C# 使用xsd文件验证XML 格式是否正确
  4. 自定义堆栈(回文检测)
  5. 配置文件app.config
  6. java gps时间转换工具_java 时间戳和时间互转工具 和 时间偏移量计算
  7. android native java_在Android Native层中创建Java虚拟机实例
  8. CSS:当子元素皆浮动,撑开父元素的3种方式
  9. 【Python】keras卷积神经网络识别mnist
  10. Promise和Promise的方法