力扣二叉树--总结篇(1)

news2024/12/24 0:17:45

前言

七天写了二十道题,前面感觉不错,后面越来越写不出来,刷题的心境和效果已然发生了变化。写个阶段总结,及时调整。

内容

先是二叉树的遍历

前序,中序,后序,即对应的递归,迭代写法,还有Morris写法  

然后是层序遍历

使用广度优先搜素

然后是翻转,对称,平衡,路径,叶子节点等问题的操作

目前都是离不开递归和迭代的,也可以说深度优先搜索和广度优先搜素

 

递归的时候隐式地维护了一个栈,迭代的时候需要显式地将这个栈模拟出来  

Morris 遍历的核心思想是利用树的大量空闲指针,实现空间开销的极限缩减。

参考文章Morris遍历详解

每次写递归,都按照这三要素来写。

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

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

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

二叉树在计算机科学中有着广泛的应用,如表达式求值、编译器设计、数据压缩等。例如,在表达式求值中,可以利用二叉树来表示算术表达式,通过遍历二叉树来实现表达式的计算;在编译器设计中,可以利用二叉树来表示源代码,通过遍历和转换二叉树来实现编译过程;在数据压缩中,可以利用二叉树来表示数据块之间的关系,从而实现数据的压缩和解压。

(我看不懂,但我大为震撼)

最近在写框架也用到了Trie 树实现动态路由(dynamic route)解析,可见真的很重要,好好学吧!

最后

越来越忙了,那就慢慢来吧,放好心态,开启下一阶段!

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

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

相关文章

视频批量剪辑技巧:掌握视频嵌套合并,轻松成为视频剪辑高手

随着社交媒体的兴起,视频已成为人们分享和交流的重要方式。视频剪辑作为视频制作的关键环节,对于提升视频质量和吸引力至关重要。视频嵌套合并是一种高级视频剪辑技巧,它将两个或多个视频片段叠加在一起,创造出一种独特的效果。这…

最大功率传输定理

最大功率传输定理 U为电源电压 r 为电源内阻 R 为负载 计算如下: 可知,当R r 时,负载上的功率最大 为: 从下面的表中也可以看出,当电源内阻r 等于负载负载电阻R时,负载所获得的功率最大。但效率不是最大…

ART-PI开发套件-构建开发环境

1、env工具的安装与使用 env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。 其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行…

【计算机网络学习之路】日志和守护进程

文章目录 前言一. 日志介绍二. 简单日志1. 左字符串2. 右字符串 三. 守护进程1. ps -axj命令2. 会话扩展命令 3. 创建守护进程 结束语 前言 本系列文章是计算机网络学习的笔记,欢迎大佬们阅读,纠错,分享相关知识。希望可以与你共同进步。 本…

java springboot测试类虚拟MVC环境 匹配请求头指定key与预期值是否相同

上文 java springboot测试类虚拟MVC环境 匹配返回值与预期内容是否相同 (JSON数据格式) 版 中 我们展示 json匹配内容的方式 那么 本文我们来看看Content-Type属性的匹配方式 首先 我们从返回体可以看出 Content-Type 在请求头信息 Headers 中 我们直接将测试类代码更改如下 …

[极客大挑战 2019]Secret File1

[极客大挑战 2019]Secret File1 在bp里面发现secr3t.php 将secr3t.php 直接加在网站后面,发现了有关flag的信息,一个flag.php文件 在遇到flag.php时候,联想到php伪协议,构造伪协议方式 secr3t.php?filephp://filter/readconver…

Pygame游戏实战五:拼图游戏

介绍模块 本游戏使用的是由Pycharm中的pygame模块来实现的,也可以在python中运行。通过Pygame制作一个拼图游戏,将一个完整的图片进行随机切分,在将其进行还原成完整的图像,看看这个是你小时候玩的游戏吗? 最小开发框…

微信小程序 服务端返回富文本,图片无法显示

场景:   微信小程序开发中,需要从服务端拿取数据渲染到页面上,后台返回的富文本里,图片路径有时是没有带域名前缀的,导致图片无法正常显示。 解决方案:   在富文本返回时,用正则匹配&#…

Linux CentOS7 LVM

LVM(Logical Volume Manger)逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分区管理的灵活性。物理设备,是用于保留逻辑卷中所存储数据的存储设备。它们是块设备,可以是…

Python---函数定义时缺省参数(参数默认值)---放最右边

缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时 可 不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)。 比如:原先的代码&#…

相比其他关系型数据库,AntDB JDBC驱动特性有哪些不同之处

摘要:使用Java语言进行各类应用程序的快速开发成为目前比较主要且流行的开发方式。JDBC是 Java 语言中用来连接和操作关系型数据库的 API,在业务程序与关系型数据库通信时,必然会使用JDBC驱动。 本文将通过国产关系型数据库AntDB中的JDBC为大…

LLaMA 2:开源的预训练和微调语言模型推理引擎 | 开源日报 No.86

facebookresearch/llama Stars: 36.0k License: NOASSERTION LLaMA 2 是一个开源项目,用于加载 LLaMA 模型并进行推理。 该项目的主要功能是提供预训练和微调后的 LLaMA 语言模型的权重和起始代码。这些模型参数范围从 7B 到 70B 不等。 以下是该项目的关键特性…

2024年天津天狮学院专升本护理学专业《护理学基础》考试大纲

天津天狮学院2024年护理学专业高职升本入学考试《护理学基础》考试大纲 一、考试性质 《护理学基础》专业课程考试是天津天狮学院护理专业高职升本入学考试的必考科目之一,其性质是考核学生是否达到了升入本科继续学习的要求而进行的选拔性考试。 《护理学基础》考…

歌手荆涛演唱歌曲《老板的孤独》:揭示风光背后的真实心境

由歌手荆涛演唱的《老板的孤独》不仅是一首歌,更像是一部情感的长篇。每一句歌词都深深由触动了那些身处领导位置、背负众多期待与责任的“老板”们。被喊一声“老板”,背后蕴藏的是无尽的压力与孤独,是对自己、对家人、对团队的责任与担当。…

dat文件转换成excel教程

dat文件存在于很多的日用场合,为了更好的去进行办公使用,很多的用户都会将dat文件转换成excel,但是不知道怎么操作的却很多,下面来看看教程吧。 dat文件转换成excel: 1、首先打开excel,然后点击上面的“数…

Python武器库开发-前端篇之CSS基本语法(三十)

前端篇之CSS基本语法(三十) CSS简介 CSS(层叠样式表)是一种用于描述网页外观和布局的样式表语言。它与 HTML 一起,帮助开发者对网页进行美化和布局。CSS通过定义网页元素的颜色、字体、大小、背景、边框等属性,使网页变得更加美…

华清远见嵌入式学习——网络编程——小项目

项目要求&#xff1a; 代码实现&#xff1a; 服务器端&#xff1a; #include <myhead.h>//定义协议包 struct proto {char type;char name[20];char text[128]; };int main(int argc, const char *argv[]) {//判断从终端输入的字符串的个数if(argc ! 3){printf("…

【算法萌新闯力扣】:卡牌分组

力扣热题&#xff1a;卡牌分组 一、开篇 今天是备战蓝桥杯的第22天。这道题触及到我好几个知识盲区&#xff0c;以前欠下的债这道题一并补齐&#xff0c;哈希表的遍历、最大公约数与最小公倍数&#xff0c;如果你还没掌握&#xff0c;这道题练起来&#xff01; 二、题目链接:…

别再被面试官问倒了!快速失败与安全失败的区别详解

大家好&#xff0c;我是小米&#xff0c;一个热爱技术分享的程序员大哥哥。今天&#xff0c;我们来聊一个在Java面试中经常会被问到的问题——"快速失败"&#xff08;fail-fast&#xff09;和"安全失败"&#xff08;fail-safe&#xff09;的区别。这两个概…