最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
LeetCode -- Path Sum III分析及实现方法
时间:2022-06-29 01:08:45 编辑:袖梨 来源:一聚教程网
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());
return _count;
}
private void Travel(TreeNode current, List ret){
if(current == null){
return ;
}
if(current.val == _sum){
_count ++;
}
var left = new List();
Travel(current.left, left);
var right = new List();
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);
}
}
相关文章
- 幻塔莎乐迪值得抽取么? 03-24
- 微博网页版快捷入口-微博网页版一键登录入口 03-24
- 原神肯德基联动第四期答案是什么 03-24
- 学信网个人查询入口-学信网学历查询官网入口 03-24
- POKI.免费游戏免下载直通-POKI.免费游戏多端秒同步 03-24
- 逆水寒配饰平沙落金获取攻略 03-24