代码随想录day14

news2024/12/27 18:55:37

这里推荐这三道题先熟悉二叉树的三种遍历方式

144. 二叉树的前序遍历(中->左->右)

根左右。前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根节点,然后遍历左子树,最后遍历右子树。
若二叉树为空则结束返回,否则:
(1)访问根结点。
(2)前序遍历左子树
(3)前序遍历右子树 。

来自前序、中序、后续遍历二叉树 - 知乎 (zhihu.com)


def dfs(root):
    if not root:
        return []
    left = dfs(root.left)
    right = dfs(root.right)
    return [root.val] + left + right

94. 二叉树的中序遍历

顺带注意,二叉树后序遍历结果为有序数组

def dfs(root):
    if not root:
        return []
    left = dfs(root.left)
    right = dfs(root.right)
    return   left + [root.val] + right

145. 二叉树的后序遍历

def dfs(root):
    if not root:
        return []
    left = dfs(root.left)
    right = dfs(root.right)
    return   left + right + [root.val]

写递归的时候严格按照递归三要素来写:

       

  1. 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。

  2. 确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。

  3. 确定单层递归的逻辑: 确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在云中实现安全与合规的规模化?亚马逊云科技给出了答案

在亚马逊云科技,为满足客户不断变化的需求,亚马逊云科技持续创新与迭代,设计的服务能帮助客户满足最严格的安全和合规性要求。针对安全相关工作,亚马逊云科技服务团队与Amazon Security Guardians云守护者项目密切配合&#xff0c…

【计算机视觉】80 TB!58.5 亿!世界第一大规模公开图文数据集 LAION-5B 解读

文章目录 一、导读二、数据集背景信息2.1 图文对数据集2.2 图像数据集 三、LAION-5B有什么3.1 子集3.2 开源模型3.3 KNN index/web界面 四、LAION可以做什么任务4.1 图文匹配及多模态预训练4.2 生成任务4.3 分类任务4.4 其他任务 五、总结 一、导读 继去年 LAION-400M 这个史上…

Android Jetpack Compose多平台用于Android和IOS

Android Jetpack Compose多平台用于Android和IOS JetBrains和外部开源贡献者已经努力工作了几年时间来开发Compose Multiplatform,并最近发布了适用于iOS的Alpha版本。自然地,我们对其功能进行了测试,并决定通过使用该框架在iOS上运行我们的…

leetcode47. 全排列 II 回溯剪枝的细节问题

题目描述: 1、思路 作为回溯算法的经典问题,常用的方法是,每次dfs前先判断是否达到临界条件,满足条件则加入结果集并return。通过循环和dfs来构建树,查找出全部满足条件的集合。 例如本题,如1&…

dp动态规划详解下

dp动态规划详解上:https://blog.csdn.net/weixin_73936404/article/details/131527247?spm1001.2014.3001.5501 目录 dp动态规划详解上:https://blog.csdn.net/weixin_73936404/article/details/131527247?spm1001.2014.3001.5501 【案例1】 【题目描…

强度(极限强度、屈服强度)、韧性材料与脆性材料(韧性材料与脆性材料的强度、为什么脆性材料在压缩时比在拉伸时更坚固?)、材料的延展性、韧性、弹性

1.强度 强度(Strength)是材料可以承受的应力的量度,通常使用极限强度(Ultimate strength)和屈服强度(Yield strength)来定义材料的强度-极限。 材料的极限抗拉强度定义为在拉伸试验过程中达到的…

windows 编译libyuv

一、libyuv下载 git clone https://chromium.googlesource.com/external/libyuv 二、libjpeg-turbo下 git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git 三、编译可以参考 BUILDING.md 需要环境: VS2019 CMake YASM 启动vs工具 编译&#xff1…

js模块化开发

◼ 到底什么是模块化、模块化开发呢?  事实上模块化开发最终的目的是将程序划分成一个个小的结构;  这个结构中编写属于自己的逻辑代码,有自己的作用域,定义变量名词时不会影响到其他的结构;  这个结构可以将自己…

SAP S4 Hana 下面ACDOCA 凭证行字段增强创建过程

网上找到这个类下面是可以新增增强的 现在需要在如下位置建立四代增强点 保存以后会出现下面的增强项 保存激活后,完成在源程序中增加了一个4代显式增强点.上面步骤只是在程序中建立了一个增强点,并没有执行什么动作,就相当于建立一个容器。如…

Python将Excel数字对应列的字母写成字典(json)

在日常的办公中,我们经常需要利用python去读写Excel类型的文件,有时候我们需要将每个数字代表的列的字母表现出来,那么我们可以利用Python实现,而且今天的代码可以根据自己的需求去任意的改变你想规定的长度 如,或者更长 a {1:…

1分钟搭建VPN服务器

1分钟搭建一个VPN服务器 VPN技术在保障网络通信安全和隐私上发挥着重要作用。IPsec VPN是其中一种常用的VPN模式。本文将介绍如何通过使用Docker来快速搭建IPsec VPN Server。 什么是IPsec VPN? IPsec即Internet Protocol Security,是一种用于保护互联…

「2024」预备研究生mem- 形式逻辑强化:逻辑的特殊文字表述方式(重点记忆)

一、形式逻辑强化:逻辑的特殊文字表述方式 二、课后题

关于torch.load报出找不到模型的错误,但路径明明正确

后来发现是因为使用 torch.save(model,save.pt) 会保存整个文件时会默认保存训练py文件的父目录,用torch.load导入文件时搜索路径必须有此父路径,否则将会提示no model named model这样的错误 解决办法是使用sys.path.apend把该父目录加入搜索路径中 …

Java开发 - 探寻Spring的秘密

前言 Spring是企业级J2EE一站式解决方案,提供了整个项目的表现层、业务层、持久层,而且,它的生态特别完善,可以和其他框架无缝对接,现在做Java的哪个项目里没有Spring的说出不去都不信。但往往我们开发者只重视项目是…

重定向:电商行业打败对手的杀手锏

重定向是一种在线营销策略,针对对产品或服务表示兴趣的潜在客户。可以追踪那些访问过您的网站、但未进行过消费的用户,再次向他们展示相关产品,激起消费欲。再营销则是可以追踪那些将商品加入网页购物车,但最后没有购买的用户&…

物流RFID设备一般在哪些场景应用?

随着现代物流行业的快速发展,传统条码技术信息量少,易脏污损毁,耐用性不高等问题很难满足物流企业多样化的需求,物流RFID设备的应用也越来越广泛。下面我们就跟大家一起来分析一下,物流RFID设备可以在哪些场景中应用。…

计算机体系结构基础知识介绍之动态调度(三)

首先回顾一下tomasulo算法, Tomasulo算法的第一个优点是分布式的冒险检测逻辑,这是通过使用预留站和公共数据总线实现的。预留站是一种存储指令和操作数的缓冲区,每个功能单元都有自己的预留站。公共数据总线是一种广播结果的方式&#xff0…

SpringBoot07:Thymeleaf模板引擎

目录 一、Thymeleaf 1、模板引擎 2、引入Thymeleaf 3、Thymeleaf分析 二、测试 1、编写一个TestController 2、编写一个测试页面welcome.html放在templates目录下 3、启动项目请求测试 三、Thymeleaf语法学习 1、修改测试请求,增加数据传输 2、要使用thy…

zabbix服务部署

文章目录 zabbix1 zabbix简介1.1 组成部件1.2 监控原理1.3 Zabbix 6.0新特性1.4 Zabbix6.0功能组件1.4.1 Zabbix Server1.4.2 数据库1.4.3 Web界面1.4.4 Zabbix Agent1.4.5 Zabbix Proxy1.4.6 Java Gateway 2 部署zabbix服务端2.1 部署Nginx2.2 安装PHP2.3 修改Nginx配置2.4 修…

Docker安装ElasticSearch7.14.0 docker安装elasticsearch7.14.0完整详细教程

Docker安装ElasticSearch7.14 docker安装elasticsearch7.14完整详细教程 Docker 上安装 ElasticSearch 7.14.0 的步骤:选择要安装的ElasticSearch 版本1、拉取 ElasticSearch 镜像2、创建并运行容器关闭容器启动容器重启容器 3、elasticsearch常用端口以及作用4、测…