当前位置: 首页 > news >正文

LeetCode -- Path Sum III

题目描述:
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.


给定一个二叉树,遍历过程中收集所有可能路径的和,找出和等于X的路径树。


思路:
设当前节点为root,分别收集左右节点路径和的集合,merge到当前集合中;
将当前节点添加到数组中,构成新的可能路径。


实现代码:


/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left;
 *     public TreeNode right;
 *     public TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    
    private int _sum;
    private int _count;
    public int PathSum(TreeNode root, int sum) 
    {
		_count = 0;
		_sum = sum;
    	Travel(root, new List<int>());
    	return _count;
    }
    
    private void Travel(TreeNode current, List<int> ret){
		if(current == null){
			return ;
		}
		
		if(current.val == _sum){
			_count ++;
		}
		
		var left = new List<int>();
		Travel(current.left, left);
		
		var right = new List<int>();
		Travel(current.right, right);
		
		ret.AddRange(left);
		ret.AddRange(right);
		
		for(var i = 0;i < ret.Count; i++){
			ret[i] += current.val;
			if(ret[i] == _sum){
				_count ++;
			}
		}
		ret.Add(current.val);
		
		//Console.WriteLine(ret);
    }
}


相关文章:

  • LeetCode -- Minimum Number of Arrows to Burst Balloons
  • 反醒反醒
  • LeetCode -- Arranging Coins
  • Bing在中国不会成功
  • LeetCode -- First Unique Character in a String
  • 搜狗输入法,无心插柳柳成荫
  • LeetCode -- Wildcard Matching
  • 弥平“第三道鸿沟”:3G运营商必须承担的社会责任
  • 使用面向对象重构之-从过程式设计到面向对象
  • Bing API初体验
  • 使用面向对象重构之-继承中的抽象—模板方法
  • www.hellocpp.net开发日记:网站性能优化之文件服务器分离技术
  • 使用面向对象重构之-使用接口完成行为抽象
  • Flex与.NET互操作(十):FluorineFx.Net的及时通信应用(ApplicationAdapter)(一)
  • 使用面向对象重构之-使用接口抽象完成不同维度的扩展
  • 网络传输文件的问题
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • extract-text-webpack-plugin用法
  • Hexo+码云+git快速搭建免费的静态Blog
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript类型识别
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • vue-router的history模式发布配置
  • 读懂package.json -- 依赖管理
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 入手阿里云新服务器的部署NODE
  • 用element的upload组件实现多图片上传和压缩
  • ​2021半年盘点,不想你错过的重磅新书
  • ​configparser --- 配置文件解析器​
  • ​HTTP与HTTPS:网络通信的安全卫士
  • (2)(2.10) LTM telemetry
  • (arch)linux 转换文件编码格式
  • (bean配置类的注解开发)学习Spring的第十三天
  • (c语言)strcpy函数用法
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (顺序)容器的好伴侣 --- 容器适配器
  • (转)memcache、redis缓存
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net core控制台应用程序初识
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Reactor简单使用教程
  • .net 反编译_.net反编译的相关问题
  • .NET 命令行参数包含应用程序路径吗?
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .net反编译的九款神器
  • .NET中winform传递参数至Url并获得返回值或文件
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • ?
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹