【C语言】Leetcode 206.反转链表

博主主页:17_Kevin-CSDN博客

收录专栏:《Leetcode》


题目

解决思路

思路一:翻转链表

struct ListNode* reverseList(struct ListNode* head) 
{if(head == NULL){return NULL;}struct ListNode* n1 = NULL,*n2 = head,*n3 = n2 -> next;while(n2 != NULL){n2 -> next = n1;n1 = n2;n2 = n3;if(n3 != NULL){n3 = n2 -> next;}}return n1;
}

我们定义三个节点的指针n1,n2,n3.分别指向NULL,head,head -> next。这样我们通过三个指针来临时存放各个节点,以此为基础来重新将各个节点进行链接。之后通过while循环使指针向后移动,逐一将n2位置的节点断开与n1之前的链接,再由n2指向n1进行链接。

过程如下图:

思路二:头插法

struct ListNode* reverseList(struct ListNode* head) 
{struct ListNode *cur = head;struct ListNode *newhead = NULL;while(cur){struct ListNode *next = cur -> next;cur -> next = newhead;newhead = cur;cur = next;}return newhead;}

首先我们定义了两个结构体指针,cur和newhead,用cur来指向当前的节点,从head开始;用newhead指向一个NULL,newhead将作为后面链接新链表的表头。

然后我们用while循环将链表遍历,直到cur的指向是NULL。在遍历的过程中,每一次cur指向的节点不是NULL的时候定义一个结构体指针next,该指针用来暂时保存cur的next,因为在连接的时候cur会先被用来去链接在新链表上,这样的话就没法找到之前链表中cur指向的下一个节点了,所以用next指向下一个节点来保证完成整体的链表的遍历。

在保证可以正常完成遍历后,我们就可以来实现每一层循环的逻辑了:

cur的next指向newhead实现了以下操作:

newhead指向cur实现了以下操作:

cur指向next实现了以下操作:

通过以上的逻辑,在一层层遍历后,直到cur对应的节点为空的时候也就表示原来的节点已经被全部链接到新的链表上了,完成了链表的反转。


以上就是该篇的全部内容啦~

如果我的博客对您的学习有帮助,希望可以得到您的三连~

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

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

相关文章

Dell R730 2U服务器实践2:VMWare ESXi安装

缘起 刚到手边的一台Dell R730是三块硬盘raid0 ,把我惊出一身冷汗,准备把它们改组成raid1 或者raid5 。 但是舍不得里面的ESXi 8 ,寻找能否把raid0改成raid1 还不掉WSXi的方法,很遗憾没有找到。那样只能重装ESXi了。 ESXi软件下…

MyCAT学习——在openEuler22.03中安装MyCAT2(网盘下载版)

准备工作 因为MyCAT 2基于JDK 1.8开发。也需要在虚拟机中安装JDK(JDK官网就能下载,我这提供一个捷径) jdk-8u401-linux-x64.rpmhttps://pan.baidu.com/s/1ywcDsxYOmfZONpmH9oDjfw?pwdrhel下载对应的tar安装包,以及对应的jar包 安装程序包…

Tomcat概念、安装及相关文件介绍

目录 一、web技术 1、C/S架构与B/S架构 1.1 http协议与C/S架构 1.2 http协议与B/S架构 2、前端三大核心技术 2.1 HTML(Hypertext Markup Language) 2.2 css(Cascading Style Sheets) 2.3 JavaScript 3、同步和异步 4、…

如何使用 ArcGIS Pro 统计四川省各市道路长度

在某些时候,我们需要进行分区统计,如果挨个裁剪数据再统计,不仅步骤繁琐、耗时,还会产生一些多余的数据,这里教大家如何在不裁剪数据的情况下统计四川各市的道路长度,希望能对你有所帮助。 数据来源 教程…

苹果发布新款 MacBook Air 13/15升级M3售8999元起

苹果官网发布新款 MacBook Air,13 英寸和 15 英寸同时升级。 搭载 M3 芯片,性能更强,续航最长可达 18 小时,最多可连接两台外接显示器。 这是一次常规的芯片升级,外观相比上代没有变化。拥有午夜色、星光色、深空灰和银…

在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新

文章目录 一、需求背景二、token刷新的方案1、根据过期时间重新获取2、定时刷新token接口3、使用了RefreshToken 三、关于RefreshToken四、Refresh Token的优点五、Refresh Token的工作原理六、Refresh Token的使用流程七、Refresh Token的实现步骤1、登录成功后保存AccessToke…

机器人顶刊IJRR近期国人新作(2024)

一、IJRR简介 The International Journal of Robotics Research(IJRR)是机器人领域的高水平学术期刊,专注于发布关于机器人技术和相关领域的最新研究成果。IJRR创刊于1982年,是该领域的第一本学术刊物,2022-2023最新影…

销量王者!三一新能源搅拌车助力商砼运输走向低碳未来

2023年,在国家扩大内需和“双碳战略”的双重推进下,新老基建项目开工速度纷纷加快,各个行业对应用于工程基建、房地产等中短途混凝土运输的新能源搅拌车有了更大的需求量。 终端上牌数据显示,2023年1-12月新能源重卡累计销售23560辆,同比增长35.65%。其中,搅拌车销量暴涨,实销…

Kafka面经

1.Kafka如何保证消息不丢失 生产者: 1.Producer 默认是异步发送消息,这种情况下要确保消息发送成功,有两个方法 a. 把异步发送改成同步发送,这样 producer 就能实时知道消息发送的结果。 b. 添加异步回调函数来监听消息发送的结…

C++模拟揭秘刘谦魔术,领略数学的魅力

新的一年又开始了,大家新年好呀~。在这我想问大家一个问题,有没有同学看了联欢晚会上刘谦的魔术呢? 这个节目还挺有意思的,它最出彩的不是魔术本身,而是小尼老师“念错咒语”而导致他手里的排没有拼在一起,…

新手想玩硬件,买单片机还是树莓派好?

新手想玩硬件,买单片机还是树莓派好? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家&#x…

前端食堂技术周刊第 114 期:Interop 2024、TS 5.4 RC、2 月登陆浏览器的新功能、JSR、AI SDK 3.0

美味值:🌟🌟🌟🌟🌟 口味:凉拌鸡架 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下…

一本书讲透ChatGPT——理论与实践的完美结合,大模型技术工程师的必备指南

写在前面 OpenAI 在 2022 年 11 月推出了人工智能聊天应用—ChatGPT。它具有广泛的应用场景,在多项专业和学术基准测试中表现出的智力水平,不仅接近甚至有时超越了人类的平均水平。这使得 ChatGPT 在推出之初就受到广大用户的欢迎,被科技界誉…

Centos 9 安装 k8s

为了尽可能契合生产环境的部署情况,这里用kubeadm安装集群,同时方便跟随笔记一步步实践的过程,也更加了解k8s的一些特性和基础知识。 先决条件 这里将通过虚拟机安装3台centos stream 9服务器,并组成kubeneters集群(…

蓝桥杯练习题——dp

五部曲(代码随想录) 1.确定 dp 数组以及下标含义 2.确定递推公式 3.确定 dp 数组初始化 4.确定遍历顺序 5.debug 入门题 1.斐波那契数 思路 1.f[i]:第 i 个数的值 2.f[i] f[i - 1] f[i - 2] 3.f[0] 0, f[1] 1 4.顺序遍历 5.记得特判 …

SAP HANA中PAL算法使用入门

1 应用场合 SAP HANA作为一款内存数据库产品, 使得数据常驻内存, 物理磁盘的存储作为数据备份与日志记录, 以防断电内存中数据丢失. 这种构架大大的缩短了数据存取的时间, 使得SAP HANA很”高速”. 在传统数据模型中,数据库只是作为存取数据一个工具,对于类似下图所示的应用, 客…

5分钟速成渐变色css

色彩的分支——渐变色定义:按照一定规律做阶段性变化的色彩(抽象!!!) 我们可以将图片分为两块 以中心线为参考,再来看渐变色的定义:按照一定规律做阶段性变化的色彩 既然是按一定的…

京津冀光伏展

京津冀光伏展是中国在京津冀地区举办的一项光伏产业展览活动。该展览旨在展示京津冀地区光伏产业的最新发展成果,促进光伏行业的交流与合作,推动光伏产业的可持续发展。 光伏产业是指利用太阳能将光能转化为电能的产业。作为一种清洁能源,光伏…

Databend 开源周报第 134 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 支持多语句事务…

1907_Arm Cortex-M3的基本了解

1907_Arm Cortex-M3的基本了解 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) 我发现Arm Coretex-M3有一个专门的DataSheet,看起来这个的确是被当做了一个设计的产品来对待的。正好,基于这个文件来看看M3具备哪些基本的特性&…