宏观角度认识递归之求根节点到叶节点数字之和

LCR 049. 求根节点到叶节点数字之和 - 力扣(LeetCode)

理解题意分析子问题:给一个头节点,要返回该头结点左右子树的根结点到叶节点数字和。此处还需注意:在获取根结点到叶节点数字和的时候,要传递一个参数:从根结点到当前节点的数字和,比如,当前节点为 9,此处要传递根结点到当前节点的数字和,也就是 4;

函数头 -> int dfs(TreeNode root,int presum);

分析子问题:

1. 根据拿到的 presum 参数,形成新的和:presum*10 + 当前节点的值;

2. 让左子树继续遍历,接受返回值;

3. 让右子树继续遍历,接受叠加返回值; 

4. 把叠加后的返回值返回会上一级;

思考递归出口:当节点的左右子树都为null的时候,进行返回,但返回的实际是要在加完该叶子节点后,也就是上述分析子问题中的第一步,要走完第一步才可以进行返回;

代码实现 

class Solution {
    public int sumNumbers(TreeNode root) {
        return dfs(root,0);    // 头节点的前置和为0
    }
    public int dfs(TreeNode root,int presum){
         presum = presum*10 + root.val;

         if(root.left == null && root.right == null) return presum;     // 递归出口

         int ret = 0;       // ret 来接收左右子树的返回值之和
         if(root.left != null)  ret += dfs(root.left,presum);
         if(root.right != null)  ret += dfs(root.right,presum);

         return ret;
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/149009.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

信道复用技术

信道复用技术:将多个信号通过同一个物理信道传输,以提高信道利用率和减少通信系统的成本 1.频分复用FDM(Frequency Division Multiplexing) 将多路基带信号调制到不同频率的载波上,再叠加形成一个复合信号的多路复用技术基带信号&#xff1…

excel数据文件的正常表达形式

正常有内容的excel文件是这样子 假若全部显示null 就没有修复的必要了 #数据恢复#

【Unity】Unity开发微信小游戏(三)工具使用Instant Game

Instant Game窗口通过Window->Auto Streaming打开。 也可参考官方详细说明 1.Texture Streaming 配置游戏内texture是否使用streaming功能,以及streaming placeholder的类型。AutoStreaming用placeholder图片替换游戏首包内的原始贴图,游戏运行时&a…

实用干货丨Eolink Apikit 配置和告警规则的各种用法

API在运行过程中可能会遇到各种异常情况,如响应时间过长、调用频率过高、请求参数错误等,这些异常会对系统的稳定性和性能产生严重影响。因此,对API进行异常监控和告警是非常必要的。本文将介绍 Eolink Apikit 中使用的告警规则,帮…

Python代码运行速度提升技巧!Python远比你想象中的快~

文章目录 前言一、使用内置函数二、字符串连接 VS join()三、创建列表和字典的方式四、使用 f-Strings五、使用Comprehensions六、附录- Python中的内置函数总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项…

全数字系列-麦克风K歌模组-搭配投影仪专业方案

麦克风学名传声器,是将声音信号转换为电信号的能量转换器件,也称话筒、微音器;主要包括拾音面和信号放大电路;利用微机械加工技术制作出来的电能换声器,具有体积小、频响特性好、噪声低、高集成度和适于大批量生产的特…

FSOD论文阅读 - 基于卷积和注意力机制的小样本目标检测

来源:知网 标题:基于卷积和注意力机制的小样本目标检测 作者:郭永红,牛海涛,史超,郭铖 郭永红,牛海涛,史超,郭铖.基于卷积和注意力机制的小样本目标检测 [J/OL].兵工学报. https://…

k8s的error: metrics not available yet问题处理

kubectl top node报错处理 解决步骤环境说明问题现象初次排查问题解决版本兼容性metric-server.yaml 问题验证 解决步骤 因项目要求,需在k8s集群中使用 kubectl top node命令,但是一直报error: metrics not available yet错误。为了更好的复现问题&…

Maven:通过相对路径向jar中添加依赖项

问:我有一个专有的jar,我想把它作为一个依赖项添加到我的pom中。 但我不想把它添加到存储库中。原因是我希望常用的maven命令(如mvn compile等)能够开箱即用。(无需要求开发人员自己将其添加到某个存储库中)。 我希望jar在源代码控制中的第三方库中&…

代码安全之代码混淆及加固(Android)

​ 目录 代码安全之代码混淆及加固(Android)🔒 摘要 引言 正文 代码混淆 代码加固 总结 参考资料 摘要 本文将介绍如何通过代码混淆和加固来保护Android应用的代码安全性。代码混淆是将代码进行加密,使其难以被反编译获得…

TikTok:传承文化多样性,扬播全球声音

在数字时代,社交媒体平台已经成为了传播文化多样性和全球声音的重要渠道。其中,TikTok无疑是最引人注目的之一。 这个短视频应用在短短几年内迅速崭露头角,吸引了全球数亿用户,成为一个独特的文化传媒工具,通过短视频…

2013年11月10日 Go生态洞察:Go语言四周年回顾

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

AR贴纸特效SDK,无缝贴合的虚拟体验

增强现实(AR)技术已经成为了企业和个人开发者的新宠。它通过将虚拟元素与现实世界相结合,为用户提供了一种全新的交互体验。然而,如何将AR贴纸完美贴合在人脸的面部,同时支持多张人脸的检测和标点及特效添加&#xff0…

一本了解生成式人工智能

上周,发了一篇关于大语言模型图数据库技术相结合的文章,引起了很多朋友的兴趣。当然了,这项技术本身就让俺们很兴奋,比如我就是从事图研发的,当然会非常关注它在图领域的应用与相互促就啦。 纵观人类文明历史&#xff…

java基本类型等API 基本语法

目录 数组 字符 API java的逻辑表达是必须是布尔值,不能是整数 必须写上!0 java的两个对象判断时候回判断地址是否相等--例如两个字符串用equals 数组 字符串在编程中可以用来存储文本信息,而字符数组则只能用来存储字符 数组转为字符串Arrays.toString 字符…

springboot集成swagger3+解决页面无法访问问题

引入依赖 pom文件引入swagger3依赖 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>配置启动文件 swagger使用ant_pattern_parser解析…

RedisTemplate乱码问题

其实这是在解决一个项目问题是发现的&#xff0c;因为原开发者的大意&#xff0c;造成了系统出现严重的逻辑问题。 因为系统系统采用分模块开发&#xff0c;某模块使用Spring提供的RedisTemplate进行值的读写&#xff0c;另一位使用了框架基于Jedis的一套公用方法进行值的读写…

【C++面向对象】11. 数据抽象*

文章目录 【 1. 访问标签强制抽象 】【 2. 设计策略 】 数据抽象 是指只向外界提供关键信息&#xff0c;并隐藏其后台的实现细节&#xff0c;即只表现必要的信息而不呈现细节。数据抽象是一种依赖于接口和实现分离的编程&#xff08;设计&#xff09;技术。数据抽象的好处&…

SoftwareTest7 - JUnit 是个啥 ? 他跟 Selenium 有什么关系 ?

JUnit 是个啥 ? 他跟 Selenium 有什么关系 ? 一 . 相关注解1.1 Test1.2 BeforeEach1.3 BeforeAll1.4 AfterEach1.5 AfterAll 二 . 断言2.1 assertEquals2.2 assertNotEquals2.3 assertTrue / assertFalse : 断言结果为真/假2.4 assertNull / assertNotNull : 断言结果为空 / …

PY32F002B从压缩包到实现串口printf输出

最近学习使用芯领的PY32F002B开发板&#xff0c;记录学习历程供有同样需求的人参考。 本文主要讲述利用开发板实现printf语句串口输出。 开发环境的初步搭建 官方提供了一个压缩文件&#xff0c;文件名py32f002B_231026.zip&#xff0c; 链接&#xff1a;https://pan.baidu.c…