数据结构_单链表题-2.1

news2024/9/21 12:36:30

一. 反转单链表

将一个单链表反过来。

个人思路(一团浆糊大错特错)

反转嘛,变最后为起点,依次反转过来就行了。
1)找到最后三个链表结点,分别保存下来,以最后一个为首地址。
2)最后一个链表结点指向倒数第二个链表(倒数第三个的next赋值给最后一个的next)
3)这样每隔一个链表结点依次反转。
在这里插入图片描述

问题

1)你要先遍历一遍才能找到最后一个链表
2)单链表,你怎么可能回溯找上流的链表

参考思路:三指针迭代(头部插入一个新的空链表)

1)首链表(n2)前创建一个NULL链表(n1)
2)把首链表指向的第二个链表地址保存下来(n3)
3)首链表指向n1,完成反转(n2->next=n1)
4)依次右移,像三个为一组的窗口去调整反转。
在这里插入图片描述

增益点:指针迭代

单链表是自上而下的单方向,思考方向应该还为从上而下。

代码

SListNode* reverseList(SListNode* head) {
	if (head == NULL || head->next == NULL)
		return head;
	SListNode* n1 = NULL;
	SListNode* n2 = head;
	SListNode* n3 = head->next;
	while (n2 != NULL)
	{
		n2->next = n1;
		
		n1 = n2;
		n2 = n3;
		if(n3!=NULL)
		n3 = n3->next;

	};

	return n1;
}

二. 单链表,有数量关系的处理

例如:
取单链表中间点
删链表倒数第几个数
…………

个人思路

1)遍历求长度
2)要第几个根据长度来看

问题

1)你要先遍历一遍才能找到最后一个链表,求长度
2)那这和数组有什么区别?效率不高
3)链表的长度本该没有什么意义。

参考思路:快慢指针

1)根据数量关系,中间点就是快指针到末尾时,慢指针以一半的速度到达中间位置。
倒数第n个,当快指针到末尾时,慢指针以落后n的速度到达相应的位置。
在这里插入图片描述

增益点:快慢指针,边遍历边根据数量关系定位

在快指针遍历完整个数组时,把之后的第二遍遍历用慢指针代替。适合有数量关系的题。

代码

一半的速度找到中间点。

while(cur->next)
    {
        cur=cur->next;
        if(cur->next)
        cur=cur->next;

        low=low->next;
    }

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

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

相关文章

整数对最小和 - 华为OD统一考试

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 给定两个整数数组array1、array2,数组元素按升序排列。 假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素&am…

Qt扩展-muParser数学公式解析

muParser数学公式解析 一、概述1. 针对速度进行了优化2. 支持的运算符3. 支持的函数4. 用户定义的常量5. 用户定义的变量6. 自定义值识别回调7. 其他功能 二、内置函数三、内置二元运算符四、三元运算符五、内置常量六、源码引入1. 源码文件2. 编译器开关1. MUP_BASETYPE2.MUP_…

配置支持 OpenAPI 的 ASP.NET Core 应用

写在前面 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 本文记录如何配置基于Swagger 的 ASP.NET Core 应用程序的 OpenAPI 规范。 需要从NuGet 安装 Swashbuckle.AspNetCore 包 代码实现 var builder WebApplicati…

如何在 Golang 中使用 crypto/ed25519 进行数字签名和验证

如何在 Golang 中使用 crypto/ed25519 进行数字签名和验证 引言crypto/ed25519 算法简介环境搭建和准备工作生成密钥对进行数字签名 验证签名实际应用场景案例总结 引言 在当今数字化时代,网络安全显得尤为重要。无论是在网上进行交易、签署合同,还是发…

大模型创业的3条军规

上周,一家初创公司未能围绕LLM和 RAG 开展业务,尽管他们获得了第一份 B2B 大型合同。 以下是原因以及如何避免这种情况: 创始人写了一篇博客解释了为什么他不得不关闭他的业务,我在这里总结了他的要点。 NSDT工具推荐&#xff1a…

基于VMware和Unbuntu18.04编译 嘉立创·泰山派 Linux SDK

主机硬件要求 内存最少32G 硬盘腾出200-500G,虽然编译最终占了73G,但富余一些以后可以搞别的方便 操作系统win7/10/11 VMware 安装 1.去vmware官网下载:https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_comp…

docker安装elasticsearch+kibana

目录 1.安装es 2.安装kibana 3.kibana监控es 1.安装es 拉取镜像 docker pull elasticsearch:7.6.1 创建存放配置文件、数据、插件的各个文件夹 mkdir -p /home/docker/elasticsearch/config mkdir -p /home/docker/elasticsearch/data mkdir -p /home/docker/elasticsearch…

2024最新版MongoDB安装使用指南

2024最新版MongoDB安装使用指南 Installation and Usage Guide of the Latest MongoDB Community Edition in 2024 By JacksonML MongoDB is a document database with the scalability and flexibility that you want with the querying and indexing that you need. – mon…

网络异常案例三_RST

问题现象 在做功能测试的时候,经常看到设备离线的消息(MQTT遗嘱)。 在终端连接的网络设备上抓包分析,看到终端设备发起大量的RST请求。 151这个设备,7min,重置断开了8个TCP连接(mqtt连接&#…

Ansible自动化运维实战

一、abstract简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric) 的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能.无客户端。我们要学一些Ansible的安装和一些基…

地平线旭日 X3 VNC 远程桌面灰屏解决

解决 windows 使用 VNC 远程连接地平线旭日 X3 开发板桌面环境灰屏的问题。 1 查看问题 通过启动vncserver后的log文件确认问题。 启动 vnc 服务 vncserver :1通过 terminal 输出可以看到日志文件的存储位置 打开查看该文件后发现首当其冲是权限问题:说xstartup…

【spring】springcloud中的组件有那些?

🍎个人博客:个人主页 🏆个人专栏:spring ⛳️ 功不唐捐,玉汝于成 目录 正文 我的其他博客 正文 说出主要的组件: Spring Cloud Eureka,服务注册中心,特性有失效剔除、服务保护Spring Cloud Zuul,API服…

系统分析师-23年-下午题目

系统分析师-23年-下午题目 更多软考知识请访问 https://ruankao.blog.csdn.net/ 试题一必答,二、三、四、五题中任选两题作答 试题一 (25分) 说明 某软件公司拟开发一套汽车租赁系统,科学,安全和方便的管理租赁公司的各项业务&#xff0…

YOLOv7独家改进:上采样算子 | 超轻量高效动态上采样DySample,效果秒杀CAFFE,助力小目标检测

💡💡💡本文独家改进:一种超轻量高效动态上采样DySample, 具有更少的参数、FLOPs,效果秒杀CAFFE和YOLOv5网络中的nn.Upsample 💡💡💡在多个数据集下验证能够涨点,尤其在小目标检测领域涨点显著。 收录 YOLOv7原创自研 https://blog.csdn.net/m0_63774211/ca…

【每日一题】 2024年1月汇编

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 【1.4】2397.被列覆盖的最多行数 2397. 被列覆盖的最多行数https://leetcode.cn/problems/maximum-rows-covered-by-columns/ 这…

服务攻防-开发组件安全Solr搜索Shiro身份Log4j日志本地CVE环境复现

知识点: 1、J2EE-组件安全-Solr-全文搜索 2、J2EE-组件安全-Shiro-身份验证 3、J2EE-组件安全-Log4J-日志记录 章节点: 1、目标判断-端口扫描&组合判断&信息来源 2、安全问题-配置不当&CVE漏洞&弱口令爆破 3、复现对象-数据库&中间…

Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(三)

1.QSet: toList 中的toList 函数已不存在,遇到xx->toList改成直接用,如下: 2.开源QWT 图形库中QwtDial中的 setPenWidth 变成 setPenWidthF函数。 3.QDateTime 中无setTime_t 改为了setSecsSinceEpoch函数。 4.QRegExp 类已不存在 可以用Q…

STM32的中断系统详解

一、什么是中断 中断是指CPU在正常执行程序时,遇到外部/内部的紧急事件需处理,暂停当前程序的执行,转而去处理紧急事件,待事件处理完毕后,返回被打断的程序继续执行,这个过程就称之为中断。 中断的意义&a…

单片机驱动多个ds18b20

目录 1设计内容 2ds18b20介绍 2.1传感器引脚及原理图 2.2寄存器配置 3程序实现 3.1配置初始化 3.2配置寄存器 3.3ROM读取 3.4温度读取 1设计内容 通过51单片机,读取总线上挂载的多个ds18b20的温度信息。 如下图,成功读取到3路温度数据。 2ds18…

python打造光斑处理系统4:裁切光斑感兴趣区域

文章目录 图像裁切给定坐标裁切手动阈值裁切 光斑处理:python处理高斯光束的图像 光斑处理系统:程序框架🌟打开图像🌟参数对话框/伪彩映射 图像裁切 一般来说,光斑只占图像很小一部分,为了更好的观感和更…