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

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;}
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python requests 库中 iter_lines 方法的流式传输优化

在使用Python的requests库与服务器进行HTTP交互时,发现使用iter_lines方法并不能实现真正的流式传输,而是等待服务器返回一定量的数据或请求结束。这一问题在服务器返回的数据量较大时尤为明显,因为默认情况下,requests库会将数据…

nodejs常见知识点

文章目录 Http和Https的区别HTTP与TCP的关系-TCP的三次握手四次挥手接口请求方式HTTP状态码及其含义为什么JavaScript是单线程同步和异步任务什么是事件循环内存泄漏ajax原理和XmlHttpRequest对象简述JWT鉴权的原理一个tcp接连能发几个httpNodeJs中间件原理Express如何使用中间…

mq具体使用方式

代码方式 第一步方式导入依赖的方式 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--AMQP依赖&#xff0c;包含RabbitMQ--><…

数据较大时的输入输出

先来看问题 假设全校有最多40000名学生和最多2500门课程。现给出每个学生的选课清单&#xff0c;要求输出每门课的选课学生名单。 输入格式: 输入的第一行是两个正整数&#xff1a;N&#xff08;≤40000&#xff09;&#xff0c;为全校学生总数&#xff1b;K&#xff08;≤2500…

机器学习-搜索技术:从技术发展到应用实战的全面指南

在本文中&#xff0c;我们全面探讨了人工智能中搜索技术的发展&#xff0c;从基础算法如DFS和BFS&#xff0c;到高级搜索技术如CSP和优化问题的解决方案&#xff0c;进而探索了机器学习与搜索的融合&#xff0c;最后展望了未来的趋势和挑战&#xff0c;提供了对AI搜索技术深刻的…

印刷企业使用数字工厂管理系统前后有什么变化

随着科技的飞速发展&#xff0c;数字工厂管理系统已经逐渐渗透到印刷企业的各个环节。本文将通过分析印刷企业在使用数字工厂管理系统前后的变化&#xff0c;探讨这一技术如何为印刷行业带来革新。 一、使用前的状况 在使用数字工厂管理系统之前&#xff0c;印刷企业的生产方式…

Qt控件按钮大全

​ 按钮 在 Qt 里,最常用使用的控件就是按钮了,有了按钮,我们就可以点击,从而响应事件,达到人机交互的效果。不管是嵌入式或者 PC 端,界面交互,少不了按钮。Qt 按钮部件是一种常用的部件之一,Qt 内置了六种按钮部件如下: (1) QPushButton:下压按钮 (2) QToolBu…

Python小白之PyCharm仍然显示“No module named ‘xlwings‘”

Python小白之“没有名称为xlwings‘的模块”-CSDN博客文章浏览阅读8次。cmd 打开命令行&#xff0c;输入python出现>>>的提示格&#xff0c;输入import xlwings 回车&#xff0c;正常报错&#xff1a;No module named xlwings。输入python 回车后&#xff0c;再输入im…

git服务器搭建

P1 kube-node2服务器 互联网已经存在的大型git服务器【版本控制服务器】 https://github.com【国外网站,速度慢】 https://about. gitlub.com/【国外网站,速度慢】 https://gitee.com【国内阿里的git网站,可以注册使用】 环境准备&#xff0c;使用之前的kube-node2主机&…

美妆商城系统 SpringBoot + Vue 【毕业设计 资料 + 源码】

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 一、前言 使用技术栈 SpringBoot Vue My…

云贝教育 |【喜报】云贝学员轻松拿下腾讯云 TDSQL-TCP(PG版)证书 最新课程介绍

亲们&#xff0c;11月18日-数据库交付运维高级工程师-腾讯云TDSQL(PostgreSQL版)-TCP&#xff01;上课了&#xff01;&#xff01; 云贝学员刚刚出炉的(postgresql)版TCP证书 课程试听 点击链接即可转跳试听课 【云贝教育】腾讯云TDSQL(PG版)交付运维高级工程师TCP认证https…

灰度图处理方法

做深度学习项目图像处理的时候常常涉及到灰度图处理&#xff0c;这里对自己处理灰度图的方式做一个记录&#xff0c;后续有更新的话会在此更新 一&#xff0c;多维数组可视化 将多维数组可视化为灰度图 img_gray Image.fromarray(img, modeL) # 实现array到image的转换,m…