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

前言

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

内容

先是二叉树的遍历

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

然后是层序遍历

使用广度优先搜素

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

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

 

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

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

参考文章Morris遍历详解

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

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

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

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

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

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

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

最后

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

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

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

相关文章

visual studio 下的git

我这个是看视频笔记 YouTube : https://www.youtube.com/watch?vgkDASVE_Hdg 主要内容是:建立git 库, 保存commit, 建立分支 create branch, 合并分支merge branch,比较 diff,Revert ,history,delete branch, rename branch, t…

金融众筹模式系统源码 适合创业孵化机构+天使投资机构+投资基金会等 附带完整的搭建教程

随着互联网技术的发展和金融市场的开放,金融众筹模式逐渐成为一种新型的融资方式。这种模式通过互联网平台聚集大量投资者,共同参与到一个项目中,为项目提供资金支持,最终获得投资回报。今天罗峰给大家分享一款金融众筹模式系统源…

基于springboot实现学生成绩管理系统项目【项目源码+论文说明】

基于springboot实现学生成绩管理系统演示 摘要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生&am…

Spring框架学习 -- Bean的生命周期和作用域

目录 前言 案例 案例分析 作用域的定义 Bean对象的6种作用域 Singleton prototype 设置作用域 ​编辑延迟初始化 Spring的执行流程 Bean的生命周期 前言 我们可以类比一下普通变量的生命周期和作用域, 大多数变量的生命周期和作用域都被限定在了花括号内 {}, 除…

微信公众号快速接入大模型

今天找到一个可以快速将大模型接入公众号的方法,现在跟大家分享一下。 如何让微信公众号接入大模型文案创作能力,实现类似ChatGPT文案创作功能。方法其实很简单,只需打开地址“http://www.botaigc.cn:8900/mpauth”,用微信扫码即可…

根据商品ID获取淘宝数据接口|淘宝商品详情接口|淘宝关键词搜索商品列表接口|淘宝到手价接口|淘宝API接口

淘宝API接口可以运用到多种业务场景中,以下列举了一些主要的场景: 商品信息展示:通过调用淘宝API详情接口,可以获取商品的详细信息,如商品标题、价格、库存、销量、评价等数据。这些信息可以用于在自己的网站或应用程…

实时LCM的ImgPilot搭建部署

ImgPilot是具有实时潜在一致性模型(LCM)功能的图像试点 下载源码 GitHub - leptonai/imgpilot: Image pilot with the power of Real-Time Latent Consistency Modelhttps://github.com/leptonai/imgpilot安装前端web cd imgpilot npm install 安装…

C++初阶 | [六] 模板初阶

摘要:泛型编程,函数模板,类模板 使用函数重载虽然可以实现,但是有一下几个不好的地方: 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函…

新手如何买卖基金,基金投资基础入门

一、教程描述 本套基金教程,大小2.50G,共有13个文件。 二、教程目录 第01课:基金入门,学会投资其实不难.mp4 第02课:基金分类,琳琅满目清清楚楚.mp4 第03课:以稳取胜,稳健基金稳…

Unity SRP 管线【第三讲:URP 光照】

3.2.3 以前属于Shader部分,Shader部分不进行讲解。 这里只涉及Unity内部管线的设置问题。 文章目录 3.2.3 向GPU发送灯光数据设置光源数据设置主光源设置额外点光源 Shader中的数据 3.2.3 向GPU发送灯光数据 在UniversalRenderPipeline.cs > RenderSingleCamera…

每日一题:LeetCode-105.从前序遍历与中序遍历构造二叉树

每日一题系列(day 02) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…

【从浅识到熟知Linux】基本指令之基本权限

🎈归属专栏:从浅学到熟知Linux 🚗个人主页:Jammingpro 🐟每日一句:用博客整理整理之前学过的知识,是个不错的选择。 文章前言:本文介绍Linux中的基本权限及相关指令用法并给出示例和…

什么是机器学习

前言 机器学习(Machine Learning, ML)是一个总称,用于解决由各位程序员自己基于 if-else 等规则开发算法而导致成本过高的问题,想要通过帮助机器 「发现」 它们 「自己」 解决问题的算法来解决 ,而不需要程序员将所有…

ThinkPHP6.1 多应用模式的一些事儿

TP安装就不说了,直接从安装完成开始了。 安装多应用模式扩展 think-multi-app composer require topthink/think-multi-app删除 app 目录下的 controller 文件夹(TP 是根据是否有这个文件夹来判断单应用模式还是多应用模式的)。 创建应用 …

二分查找之红蓝二分查找

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

毅速丨3D打印随形水路为何受到模具制造追捧

在模具制造行业中,随形水路镶件正逐渐成为一种革命性的技术,其提高冷却效率、优化产品设计、降低成本等优点,为模具制造带来了巨大的创新价值。 随形水路是一种根据产品形状定制的冷却水路,其镶件可以均匀地分布在模具的表面或内部…

JavaWeb学习(未完结)

文章目录 一、基本概念1.1 动态Web网站简介1.2 web应用程序1.3 静态web1.4 动态web 二、web服务器2.1 技术2.2 应用服务器2.3 安装 jdk8 三、Tomcat3.1 安装 Tomcat93.2 文件说明3.3 启动并使用Tomcat3.4 关闭Tomcat3.5 可能遇到的问题3.6 配置3.6.1 修改测试访问的网页地址3.6…

网站监控是什么

在当今高度互联的世界中,网站已成为企业和个人成功的关键因素。无论是提供产品或服务,还是建立品牌形象,网站都是不可或缺的工具。然而,随着互联网用户对访问速度和用户体验的高要求,保持网站的稳定性和可用性变得至关…

【深度学习】卷积神经网络结构组成与解释

卷积神经网络是以卷积层为主的深度网路结构,网络结构包括有卷积层、激活层、BN层、池化层、FC层、损失层等。卷积操作是对图像和滤波矩阵做内积(元素相乘再求和)的操作。 1. 卷积层 常见的卷积操作如下: 卷积操作解释图解标准卷…

案例024:基于微信小程序的汽车保养系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…