当前位置:网站首页>二叉树求和路径问题解答与注记
二叉树求和路径问题解答与注记
2022-08-03 17:55:00 【小问号我们是朋友】
给定题干:
给定一棵二叉树,其中每个节点都含有一个整数数值(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径的数量。注意,路径不一定非得从二叉树的根节点或叶节点开始或结束,但是其方向必须向下(只能从父节点指向子节点方向)。
题目来源:
力扣(LeetCode)
1.示例
示例如下:
示例:
给定如下二叉树,以及目标和 sum = 22,
5
/ \
4 8
/ / \
11 13 4
/ \ / \
7 2 5 1
返回:
3
解释:和为 22 的路径有:[5,4,11,2], [5,8,4,5], [4,11,7]2.解答与注记
代码如下(Java):
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int pathSum(TreeNode root, int sum) {
//如果根节点为空,则返回0,表示无求和路径
if(root == null) {
return 0;
}
//从根节点开始,递归遍历每个节点
int ret = rootSum(root, sum);
//将根节点的叶子节点作为一个新的路径起点开始递归遍历,直至整个二叉树遍历完毕
ret += pathSum(root.left, sum);
ret += pathSum(root.right, sum);
return ret;
}
public int rootSum(TreeNode root, int sum) {
//如果根节点为空,则返回0,表示无求和路径
if(root == null) {
return 0;
}
int ret = 0;
//获取当前节点的值与给定值做比较,相等则求和路径数加一
int val = root.val;
if(val == sum) {
ret++;
}
//如果当前值与给定值不同则递归遍历该节点的子节点,直至到达二叉树的最底部
ret += rootSum(root.left, sum - val);
ret += rootSum(root.right, sum - val);
return ret;
}
}总结
以上就是今天要讲的内容,本文介绍了二叉树求和路径的一种解法,在此备忘以供参考。
边栏推荐
- ICDAR competition technology sharing
- 调用EasyCVR云台控制接口时,因网络延迟导致云台操作异常该如何解决?
- ATM银行系统(对象初级练习)
- Cool open technology x StarRocks: unified OLAP analysis engine, comprehensive building digital model of OTT
- InnoDB 中不同SQL语句设置的锁
- 理想L9旗舰级的安全性有多强?守护一家人安全出行“底线”
- es6新增-Generator(异步编程的解决方案2)
- Share 14 JS functions you must know
- 并查集模板及思想
- Execution plan of mysql
猜你喜欢

Win11系统的显卡驱动安装的详细方法步骤

超T动力 焕“芯”出发 | 中国重汽专属定制版WP14T产品闪耀登场

Cool open technology x StarRocks: unified OLAP analysis engine, comprehensive building digital model of OTT

CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统

理想L9旗舰级的安全性有多强?守护一家人安全出行“底线”

Execution plan of mysql

使用.NET简单实现一个Redis的高性能克隆版(一)

【机器学习】机器学习的基本概念/术语2

云图说丨初识华为云微服务引擎CSE

Is OnePlus Ace worth buying?Use strength to interpret the power of performance
随机推荐
Cool open technology x StarRocks: unified OLAP analysis engine, comprehensive building digital model of OTT
003_Kubernetes核心技术
我们为何看好投资 DAO?
341. Flatten Nested List Iterator
开篇-开启全新的.NET现代应用开发体验
【机器学习】机器学习基本概念/术语3
动态打印菱形
ICDAR competition technology sharing
Share 14 JS functions you must know
快手通过国际权威信息安全和隐私保护认证,安全能力达到国际领先水平
JVS低代码移动端接入方案
EasyNTS上云网关断电重启后设备离线是什么原因?
【mysql】SIGN(x)函数
mysql命令
Win11系统的显卡驱动安装的详细方法步骤
多线程 里面 使用AtomicInteger类,保证线程安全
Cyanine5.5 alkyne|Cy5.5 alkyne|1628790-37-3|Cy5.5-ALK
Atomic Wallet已支持TRC20-USDT
CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes), problem: (D) Magical Array
STM32——LCD—FSMC原理简介