LeetCode 606.根据二叉树创建字符串,102.二叉树的层序遍历和牛客 二叉搜索树与双向链表

news2025/2/23 23:37:42

在这里插入图片描述

文章目录

  • 1. 根据二叉树创建字符串
  • 2. 二叉树的层序遍历
  • 3. 二叉搜索树与双向链表

1. 根据二叉树创建字符串

在这里插入图片描述
难度 简单 题目链接

解题思路
这里的意思就是:用前序遍历遍历这颗树。然后左子树和右子树分别在一个括号里。括号里的规则是:
1.左右都为空,或者右为空左不为空,空括号可以省略。
2.左为空,右不为空。空括号不能省略

代码如下
在这里插入图片描述
这道题的难点主要是控制左右的情况。

2. 二叉树的层序遍历

在这里插入图片描述
难度 中等 题目链接

二叉树的层序遍历的层序遍历如果大家不会,可以看我这篇文章:二叉树如何层序遍历。这篇文章说的非常详细。
解题思路
这道题的难点是什么呢
主要是我们怎么让每一层的数据放进一个数组里。什么时候再放在下一个数组中。其实我们可以用一个变量来控制层数,然后每次一层一层出,出完一层,再出下一层

代码如下
在这里插入图片描述
在这里插入图片描述
还有一题是从下往上层序遍历。这个题我们只需要把前面的数组vv给逆置一下就行了。

3. 二叉搜索树与双向链表

在这里插入图片描述
难度 中等 题目链接

这道题大家可能会想用中序遍历,遍历一个创建一个空结点,然后链接起来。但是题目要求不允许,只能在原来树上改变。
在这里插入图片描述
解题思路
定义一个cur和一个prev,然后中序遍历
在这里插入图片描述
找到第一个不是空结点的位置,然后让cur的left指向prev
在这里插入图片描述
然后中序到下一个位置,让prev的right指向cur

代码如下
在这里插入图片描述
因为题目要我们传递的是头指针,所以我们还需要找头。
在这里插入图片描述

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

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

相关文章

W800|WIFI|CDK|W80X SDK v1.00.10|官方demo|学习(2):t-connect

W800 SDK代码及相关文档获取地址: https://www.winnermicro.com/html/1/156/158/558.html 1、W800 SDK v1.00.10更新内容: 1. 驱动更新 1)提供模组ADC校准功能接口 2)修复PSRAM IO复用不完整问题 3)Flash驱动修改不再…

CSDN每日一练非降序数组 C语言/C++

题目名称:非降序数组 时间限制:1000ms内存限制:256M 题目描述 写一个函数,传入两个非降序的整数数组(A, B),将 A, B 合并成一个非降序数组 C,返回 C(不要使用内置 sort 函…

新项目分析

1:数据类型处理 # sep‘\s‘ 这是正则表达式,通过一定规则的表达式来匹配字符串用的 \s 表示空白字符,包括但不限于空格、回车(\r)、换行(\n)、tab或者叫水平制表符(\t)等,这个根据编码格式不同代表的含义也不一样,感…

一文讲解系统调用与函数调用有什么区别?

作为程序员你肯定写过无数的函数,假设有这样两个函数: void funcB() { }void funcA() {funcB(); } 函数之间是可以相互调用的,这很简单很happy有没有。 要知道是代码、是函数就可以相互调用,不管你用什么语言写的。 假设funcB…

2023/02/21 事件循环-eventloop 宏任务 微任务 讲解

1 JS是单线程 js是单线程的。也就是说,同一个时间只能做一件事。作为浏览器脚本语言,与它的用途有关。JavaScript的主要用途是和用户互动,以及操作DOM,这决定了它只能是单线程。 js是单线程的。也就是说,同一个时间只…

如何使用 API 工具做 Websocket 测试

在 API 测试中,对 Websocket 协议的支持呼声越来越高,今天给大家推荐一款 开源的 API 管理工具——Postcat,以及教教大家,如何利用 API 管理工具做 Websocket 测试。 在线 Demo 链接:Postcat - Open Source API Ecosys…

17 个短代码,检验你 Python 基本功

Python 是一门非常优美的语言,其简洁易用令人不得不感概人生苦短。在本文中,蛋糕将带大家回顾 17个非常有用的 Python 技巧,例如查找、分割和合并列表等。这 17 个技巧都非常简单,但它们都很常用且能激发不一样的思路。 人生苦短&…

来一波骚操作,Java内存模型

文章整理自 博学谷狂野架构师 什么是JMM 并发编程领域的关键问题 线程之间的通信 线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享内存和消息传递。 ​ 在共享内存的并发模型里,线程之间共享程序的公共…

项目管理从需求管理开始--不懂需求管理还敢带项目?

分析报告指出,多达76%的项目失败是因为差劲的需求管理,这个是项目失败的最主要原因,比技术、进度失控或者混乱的变更管理还要关键。很多PMO和PM却没有把需求管理重视起来,甚至认为这只是产品经理的事情,自己只做交付即…

Spark RDD及内存计算

文章目录Spark RDD及内存计算性能调优RDD 的核心特征和属性内存计算Spark RDD及内存计算 性能调优 性能调优的本质: 性能调优不是一锤子买卖,补齐一个短板,其他板子可能会成为新的短板。因此,它是 一个动态、持续不断的过程&…

第51篇-某彩网登录参数分析-webpack【2023-02-21】

声明:该专栏涉及的所有案例均为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系本人删帖! 文章目录 一、前言二、网站分析一、前言 今天我们看一个webpack的网站 aHR0cHM6Ly8xMGNhaTUwMC5jYy9sb2dpbg==二、网站分析 首先…

Springboot 全局异常处理类

全局异常处理 在开发过程中,不管是Dao、Servie、Controller,层都有可能发生异常,对于异常处理,通常是try-catch或者直接throw,这会让try-catch的代码在代码中任意出现,系统的代码耦合度高&…

Elasticsearch7.8.0版本进阶——数据更新流程

目录一、数据更新流程概述二、数据更新流程步骤2.1、数据更新流程图解2.2、部分更新一个文档的步骤2.3、数据更新流程注意事项一、数据更新流程概述 部分更新一个文档需要结合数据读取和写入流程。 二、数据更新流程步骤 2.1、数据更新流程图解 2.2、部分更新一个文档的步骤…

经典文献阅读之--MSC-VO(曼哈顿和结构约束VIO)

0. 简介 对于视觉里程计而言,在面对低纹理场景时,往往会出现退化的问题,究其原因是人造环境往往很难找到足够数量的点特征。而其他的几何视觉线索则是比较容易找到,在城市等场景中,通常表现出结构规律,如平…

程序中的日期使用问题-格式转化:SimpleDateFormat、org.apache.commons.lang3.time.DateUtils

前言 日期使用问题主要是格式转换的问题 场景:通过excel导入数据,其中一个字段为出生日期,需要对字段值进行合法性校验 博客地址:芒果橙的个人博客 【http://mangocheng.com】 一、个人浅谈日期 时间日期作为一个基础的标识和维度…

Windows下使用git提交代码到gitee

Windows下使用git提交代码到gitee 1、下载安装git 2、或者参考Gitee初始仓库里面的配置代码 上传本地代码到gitee上 1、 在本要上传的代码文件夹,右键 选择:Git Bash Here 2、执行:git init 3、然后执行:git add 文件名。&…

深入Spring底层透析bean生命周期及循环引用的醍醐灌顶篇

目录前言一.Bean的生命周期1.1 Bean的实例化阶段1.2 Bean的初始化阶段(重点)1.3 Bean的完成阶段二.循环引用问题(面试常问题)三.Spring的三级缓存(重点来了)四.完整的Spring IoC整体总结前言 本篇是接着bean的创建基本…

人工智能详细笔记 :卷积神经网络(CNN)

卷积神经网络和深度学习1.卷积神经网络的结构2.卷积神经网络的卷积运算3.卷积神经网络中的关键技术BP神经网络存在的问题: 输入类型限制:BP神经网络以数值作为输入。如果需要计算图像相关的信息的话,首先需要从图像中提取特征。隐层数量限制…

直播预告 | 嵌入式BI如何将数据分析真正融入业务流程

在信息化高速发展的今天,数据成为企业最有价值的资产之一。而数据本身很难直接传递有价值的信息,只有通过对数据进行挖掘、分析,才能让数据真正成为生产力。 商业智能(BI)应运而生,可以帮助企业更好地从数…

ASP.NET MVC | 简介

目录 前提 1.教程 2.MVC 编程模式 最后 前提 在学习学过很多课程,但是最主要学的还是ASP.NET MVC这门课程,工作也是用的ASP.NET MVC,所以写一点ASP.NET MVC的东西,大家可以来看看,我自己不会的时候也不用找别的地方…