当前位置:网站首页>二叉树求和路径问题解答与注记
二叉树求和路径问题解答与注记
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;
}
}总结
以上就是今天要讲的内容,本文介绍了二叉树求和路径的一种解法,在此备忘以供参考。
边栏推荐
- 细胞不可渗透的荧光探针 锌离子荧光探针Zinquin 151606-29-0
- 星巴克输血赶不上流血
- LeetCode - 102. 二叉树的层序遍历;110. 平衡二叉树;098. 验证二叉搜索树
- yaml数据格式
- gcc的学习及 版本太低如何在conda环境下重新进行安装
- Is OnePlus Ace worth buying?Use strength to interpret the power of performance
- 精酿啤酒品牌,过把瘾就死?
- 383. Ransom Note
- 2020icpc亚洲区域赛(济南)M题Cook Pancakes(小根堆的应用)
- 关于 Intel 在 micro-vm 快速启动的探索及实例演示 | 第 36-38 期
猜你喜欢
随机推荐
分享 14 个你必须知道的 JS 函数
火热的印度工厂,带不动印度制造
计网知识点
我们为何看好投资 DAO?
云GPU如何安装和启动VNC远程桌面服务?
Share 14 JS functions you must know
【mysql】SIGN(x) function
rhel8.3 系统下修改有线网卡配置信息实现联网
星巴克输血赶不上流血
Atomic Wallet已支持TRC20-USDT
pydev debugger: warning: trying to add breakpoint to file that does not exist: /tmp/xxx
China Hashpower Conference Ascension Kunpeng Ecological Forum was held; Kuaishou established an independent to B business department…
yaml数据格式
ThreeJS简介
【技术白皮书】第一章:OCR智能文字识别新发展——深度学习的文本信息抽取
并查集模板及思想
有人知道flink sql 使用tableEnv.executeSql执行后,怎么获取到任务运行的
isNotBlank与isNotEmpty
【牛客在线OJ】-字符逆序
PMP试题 | 每日一练,快速提分









