【关关的刷题日记60】Leetcode 437. Path Sum III
时间:2022-05-08
本文章向大家介绍【关关的刷题日记60】Leetcode 437. Path Sum III,主要内容包括题目、思路、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
关关的刷题日记60 – Leetcode 437. Path Sum III
题目
题目的意思是给定一个二叉树,让我们找到路径节点和等于给定值的路径的个数。这里的路径不一定是从根节点到叶子节点,可以是其中的一段,但是必须是自上而下的顺序。
思路
思路:这题目不好做,涉及到递归的嵌套。一棵树中满足路径节点和等于给定值的路径的个数,等于以这棵树的根节点为路径源头的满足要求的个数,加上它的左右子树中满足要求的树的个数。左右子树中满足要求的树的个数的求法,和这棵树中满足要求的个数的求法一样,这是第一层递归。以这棵树的根节点为路径源头的满足要求的个数的做法,同关关的刷题日记58 – Leetcode 112 Path Sum中的做法一样,只不过不是到叶子节点,才判断节点值是否与sum值相等,而是路径中的任一点都可以。
class Solution {public:
int dfs(TreeNode* root, int sum)
{
int count=0;
if(root==nullptr)
return 0;
if(root->val==sum)
count++;
count+=dfs(root->left,sum-root->val);
count+=dfs(root->right,sum-root->val);
return count;
}
int pathSum(TreeNode* root, int sum) {
if(root==nullptr)
return 0;
return dfs(root,sum)+pathSum(root->left,sum)+pathSum(root->right,sum);
}};
人生易老,唯有陪伴最长情,加油!
以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。
- 基于Go Packet实现网络数据包的捕获与分析
- 动态追踪技术(四):基于 Linux bcc/BPF 实现 Go 程序动态追踪
- Hive 时间转换函数使用心得
- Flume-Hbase-Sink针对不同版本flume与HBase的适配研究与经验总结
- 利用Flume 汇入数据到HBase:Flume-hbase-sink 使用方法详解
- 浅谈保证软件工程质量的一些心得体会
- 基于ELK的nginx-qps监控解决方案
- 2017年年度最烂密码排名
- 字符串方法汇总(三)
- 周鸿祎:“大安全”网络时代 需要AI大数据的技术支持
- 爆料:对扫码支付下手后,据说央行接下来要提高备付金,目标比例42%
- 回顾2017年5大科技突破,“时间晶体”充满想象!
- 1宽币=883?山本宽称要发行自己的数字货币
- 十种深度学习算法要点及代码解析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- android studio实现简单考试应用程序实例代码详解
- Kotlin 实现按钮点击跳转监听事件方式
- Android使用剪切板传递数据
- kotlin anko页面跳转实现方式,携带参数或flag
- 关于android连续点击出现多个Activity界面的解决方法
- Android Studio使用recyclerview实现展开和折叠功能(在之前的微信页面基础之上)
- 解决django 多个APP时 static文件的问题
- Android Studio如何获取SQLite数据并显示到ListView上
- Android自定义短信倒计时view流程分析
- 使用Android studio3.6的java api方式调用opencv
- thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
- php+iframe 实现上传文件功能示例
- php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
- 如何在OpenStack Kolla上部署Tungsten Fabric(附14个常见的配置问题)
- 浮点数的秘密