【递归搜索回溯专栏】专题二:二叉树中的深搜----求根节点到叶节点数字之和

本专栏内容为:递归,搜索与回溯算法专栏。 通过本专栏的深入学习,你可以了解并掌握算法。

💓博主csdn个人主页:小小unicorn
⏩专栏分类:递归搜索回溯专栏
🚚代码仓库:小小unicorn的代码仓库🚚
🌹🌹🌹关注我带你学习编程知识

专题一

  • 题目来源
  • 题目描述
  • 算法原理
    • 函数头
    • 函数体
    • 返回值
  • 代码实现

题目来源

本题来源为:

Leetcode 129. 求根节点到叶节点数字之和

题目描述

给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。
每条从根节点到叶节点的路径都代表一个数字:

例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。
计算从根节点到叶节点生成的 所有数字之和 。

叶节点 是指没有子节点的节点。
在这里插入图片描述
在这里插入图片描述

算法原理

还是从例子下手,例如下面这个就是要将1247,1258,12594,125931,1367加起来的值就是我们需要的结果。
在这里插入图片描述
递归我们看一层,比如5这个节点,5这个节点我们需要干什么事情,他要拿到1258,12594,125931这三个的值然后返回给根节点。先看1258这个数,要想获得1258这个数,我们是不是首先要拿到12,因此要先把12拿过来。
在这里插入图片描述
那么所以:
第一步:当到5节点这一层要先算出125.
第二步:将125传给左边
第三步:将125传给右边
第四步:把两个返回值相加返回到上一层的节点。

那么其他层跟5节点是一样的,都需要这四步。

函数头

因为要记录上一层的值,因此要在传根的基础上加一个参数。

函数体

跟5节点分析一样,分成1 2 3 4步

返回值

当遇到为叶子节点时就返回。
注意递归出口是在第一步后结束的。
在这里插入图片描述

代码实现

class Solution 
{
public:
    int sumNumbers(TreeNode* root) 
    {
        return dfs(root,0);
    }
    int dfs(TreeNode*root,int presum)
    {
        presum=presum*10+root->val;
        if(root->left==nullptr&&root->right==nullptr)
            return presum;
        int ret=0;
        if(root->left)ret+=dfs(root->left,presum);
        if(root->right)ret+=dfs(root->right,presum);
        return ret;

    }
};

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

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

相关文章

NXP Auto HVBMS S32DS 参数配置卡顿解决办法:使用 EB 替代 S32DS Configuration Tools

一、背景介绍 用户在 Automotive Software Package Manager | NXP Semiconductors 可以下载 S32K344 或者是 S32K358 的 HVBMS 捆绑包。 其中包含有 IDE:S32DS,基于 S32DS 的基础软件包以及 RTD 插件包,MCAL 配置工具:EB …

内网渗透-跨域环境渗透-1

目录 smbclient工具 mimikatz工具 Kerbers协议 NTLM认证 hash传递攻击(PTH攻击) 黄金票据攻击 白银票据 MS14-068 smbclient工具 在linux里面连接远程windows共享目录,可以使用这个工具 ​ 第一种连接方式:smbclient -L 目…

【组合回溯递归】【树层去重used标记】Leetcode 40. 组合总和 II

【组合回溯递归】【树层去重used标记】Leetcode 40. 组合总和 II 解法 组合问题常用解法 树层去重 ---------------🎈🎈40. 组合总和 II 题目链接🎈🎈------------------- 解法 组合问题常用解法 树层去重 问题描述&#xff1…

GIS人必备神器降临!快速搞定洪水淹没分析!ArcGIS AddIn无源淹没分析插件!

最近有很多小伙伴给我发私信,想使用我开发的一款基于无源淹没分析算法对洪水淹没进行分析的GIS插件。大部分小伙伴是因为看了我之前发的一个讲解洪水淹没分析算法的视频,在视频中我给大家展示了给某高校水利课题组开发的两款用于洪水淹没分析的插件&…

CentOS 7 基于开源项目制作openssh 9.7p1二进制rpm包(内含ssh-copy-id、显示openssl版本信息)—— 筑梦之路

可参考之前的文章:CentOS 5/6/7 基于开源项目制作openssh 9.6p1 rpm包—— 筑梦之路_centos6 openssh9.6rpm-CSDN博客 2024年3月12日 植树节制作,相关文件见我的资源

iOS全局自动化代码混淆工具!支持cocoapod组件代码一并混淆

​ 目录 摘要 引言 Ipa Guard 怎么使用 ipaguard启动界面 ipaguard代码混淆界面 资源文件混淆界面 重签名界面 总结 摘要 Ipa Guard是一款强大的iOS ipa混淆工具,能够对ipa文件进行混淆加密,保护代码、代码库和资源文件,降低代码可…

灯塔:CSS笔记(3)

盒子模型: 盒子的概念 1.页面中的每一个标签都可以看做是一个“盒子”,通过盒子的视角更方便的进行布局 2.浏览器在渲染(显示)网页时,会将网页中的元素看作是一个个矩形区域,我们也形象的称之为盒子 盒…

混合输入矩阵乘法的性能优化

作者 | Manish Gupta OneFlow编译 翻译|宛子琳、杨婷 AI驱动的技术正逐渐融入人们日常生活的各个角落,有望提高人们获取知识的能力,并提升整体生产效率。语言大模型(LLM)正是这些应用的核心。LLM对内存的需求很高&…

14.WEB渗透测试--Kali Linux(二)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:13.WEB渗透测试--Kali Linux(一)-CSDN博客 netcat简介内容:13.WE…

Java项目:基于Springboot+vue实现的付费自习室系统设计与实现(源码+数据库+毕业论文)附含微信小程序端代码

一、项目简介 本项目是一套基于Springbootvue实现的付费自习室系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

​《宏伟世纪》在 TheSandbox 中带来虚拟苏丹体验!

《宏伟世纪》(Magnificent Century)与 The Sandbox 合作,将戏剧带入数字领域!这部土耳其历史小说电视连续剧以苏丹苏莱曼大帝和许蕾姆苏丹的生平为原型,曾在 140 多个国家和地区播出,收视率超过 5 亿&#…

设计模式一 ---单例设计模式(动力节点,JavaSE基础)

设计模式 1.什么是设计模式? 2.设计模式的分类 单例设计模式就是GoF模式中的一种。 3.GoF设计模式的分类: 单例设计模式: 顾名思义:单个实例的设计模式!

2024 数字环保壁炉|AFIRE ™

2024年,数字和环保壁炉将站在现代性和环保尊重的交汇处。由制作的酒精壁炉和水离子水壁炉提供了将技术创新与生态承诺相结合的体验。为了打造您的装饰壁炉,真正的火焰,100%安全。 2024年,使用水壁炉运行的数字和环保壁炉。 水离…

职场人福音来了!微信机器人自动回复设置

微信消息太多,回复不过来;休息节假日没能及时回复客户消息;好友请求太多一个一个通过很麻烦…… 如果你也有这些烦恼,那么你一定要试试微信管理系统,能够让你实现微信自动会化回复。 1、自动通过好友 当有新的好友请…

算法刷题Day6 | 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

目录 0 哈希表 哈希函数1 有效的字母异位词1.1 string的回顾1.2 我的代码 2 两个数组的交集2.1 unordered_set 介绍2.2 我的解题(set) 3 快乐数3.1 我的解题(set) 4 两数之和4.1 暴力求解4.2 map的使用4.3 哈希表(map&…

使用单片机和电流互感器对非正弦周期电流有效值测定

前言:使用单片机加电流互感器测量交流电路的电流,是非常常见的手段。最简单的方案就是直接使用采样电阻,整流滤波,再进入MCU的ADC进行转换,再通过软件滤波得到一个代表着电流大小的数值。对于电流保护功能来说&#xf…

如何从用户心理一步步挖掘用户需求?

为了更深入透彻挖掘用户需求,彻底满足用户的真实需求,我们可以从用户心理角度,一步步从方案级需求到问题级需求,再到人性级需求。 1、从方案级需求到问题级需求 方案级需求通常是指用户提出的具体解决方案或需求表述。这种需求往往…

一文彻底搞懂IO流

文章目录 1. 什么是IO流2. IO流原理3. IO流分类3.1 按数据类型分类3.2 按流的方向分类 4. IO流的使用场景5. 常用的IO流类5.1 字节流类5.2 字符流类5.3 输入输出流类5.4 字符输出流类 1. 什么是IO流 Java对数据的操作是通过流的方式,IO是java中实现输入输出的基础&…

探索ChatGPT的前沿科技:解锁其在地理信息系统、气候预测、农作物生长等关键领域的创新应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

Java高校学校校园排课系统设计与实现(Idea+Springboot+mysql)

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…