C语言:反转一个单链表

这篇具有很好参考价值的文章主要介绍了C语言:反转一个单链表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 C语言:反转一个单链表,C语言,C语言刷题,数据结构,c语言,开发语言

Lei宝啊:个人主页


题目:

描述:

给你单链表头节点 head ,请你反转链表,并返回反转后的链表

接口:

struct ListNode* reverseList(struct ListNode* head){}

示例:

C语言:反转一个单链表,C语言,C语言刷题,数据结构,c语言,开发语言

 输入:

head = [1,2,3,4,5]

 输出:

[5,4,3,2,1]



 思路:

先将第一个节点的next指向NULL,同时还要记住原来第一个节点指向的下一个节点的位置

C语言:反转一个单链表,C语言,C语言刷题,数据结构,c语言,开发语言

接下来我们希望第二个节点指向第一个节点,所以要用n1记录第一个节点的位置n2记录第二个节点的位置,同时我们还需要一个n3去记录第三个节点的位置

C语言:反转一个单链表,C语言,C语言刷题,数据结构,c语言,开发语言

 这样一直往下走,直到到尾,有这样的情况:

C语言:反转一个单链表,C语言,C语言刷题,数据结构,c语言,开发语言文章来源地址https://www.toymoban.com/news/detail-619408.html

所以我们给出的解决方法是当他为空时不往下走

实现代码 :

ListNode* n1 = NULL;
ListNode* n2 = head;
if(n2)
	ListNode* n3 = n2->next;

while (n2)
{
	n2->next = n1;
	n1 = n2;
	n2 = n3;
	if (n3)
		n3 = n3->next;
}

return n1;

到了这里,关于C语言:反转一个单链表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构——单链表(C语言)

    在这⼀条⼗分漫长的路上,我⾛过阳关⼤道,也⾛过独⽊⼩桥。路旁有深⼭⼤泽,也有平坡宜⼈;有杏花春⾬,也有塞北秋风;有⼭重⽔复,也有柳暗花明;有迷途知返,也有绝处逢⽣。——《⼋⼗述怀》 目录 一 . 什么是链表? 二 . 实现单链表 (1)创建相关源文件和头文

    2024年02月08日
    浏览(93)
  • C语言:数据结构(单链表)

    概念:链表是一种 物理存储结构上非连续 、非顺序的存储结构,数据元素的 逻辑顺序 是通过链表的 指针链接 次序实现的。 链表的结构跟火车车厢相似,淡季时车次的车厢会相应减少,旺季时车次的车厢会额外增加几节。只需要将火车里的某节车厢去掉/加上,不会影响其

    2024年04月26日
    浏览(28)
  • 单链表(数据结构)(C语言)

    这里特指无哨兵位单向非循环链表 目录 背景 概念 单链表的实现 前景提示 单链表的结构体定义 单链表的打印 关于为什么不断言phead 关于单链表的逻辑结构和物理结构 单链表的尾插 关于为什么要用到二级指针 关于尾插的本质 关于找尾整个过程的解释 关于为什么打印单链表

    2023年04月22日
    浏览(66)
  • 单链表—C语言实现数据结构

    本期带大家一起用C语言实现单链表🌈🌈🌈 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的;简单来说,线性表的链式存储结构生成的表,称作“链表”。 每个元素本身由两部分组成: 1、本身的信息,称为

    2024年02月07日
    浏览(64)
  • C语言:数据结构之单链表(二)

    上一篇随笔谈了谈单链表是什么东西,然后进行了初始化,这篇随笔就开始对其进行操作了,首先是增,删,改,查的增。 增,顾名思义就是要增加新的元素,单链表是链式的,那就要考虑怎么去加新元素,有三种,从头部添加,从尾部添加,从中间添加。先说说从尾部添加

    2024年02月12日
    浏览(30)
  • C语言:数据结构之单链表(四)

    本篇谈一谈单链表的 改 ,具体操作就是找到他,然后修改元素即可,上一篇有相关代码,可以参考。 改函数代码如下: main函数如下:(修改第6,8,3位) 结果如下:   至此,单链表的增删改查就谈完了,只需理解它的本质是干什么,代码就很好写了。 总结:①改比较简单,

    2024年02月16日
    浏览(30)
  • C语言:数据结构之单链表(三)

    上篇谈了谈尾插法和头插法,这篇谈谈中间插入元素和删除。 1、中间插入元素 既然谈到了要从中间插入那就得确定插入的位置是否合法了,我总不能链表总长为5,但是插入的位置是60,这就不对了。所以得先确定这个链表的长度为多少。这个比较简单,就是在寻找尾部的过

    2024年02月13日
    浏览(33)
  • <数据结构> 链表 - 单链表(c语言实现)

    哨兵位结点也叫哑节点。哨兵位结点 也是头结点 。该节点 不存储有效数据,只是为了方便操作 (如尾插时用带哨兵位的头结点很爽,不需要判空)。 有哨兵位结点的链表,第一个元素应该是链表第二个节点(head - next,head为哨兵位结点)对应的元素。 有哨兵位结点的链表

    2023年04月11日
    浏览(29)
  • C语言:数据结构之单链表(一)

    当初刚开始学单链表学的是一头雾水,简直就是彻头彻尾灾难,一塌糊涂,过段时间后经过自己的重新认真思考再结合小练习明白了它是怎么个回事儿。 1、首先从它的逻辑上入手,对他有大体认知。 简单来说就是一个一个有方向小块儿连在一起,好像疫情期间大家排队做核

    2024年02月12日
    浏览(67)
  • 【数据结构】C语言实现单链表(带头结点)

    Single linked list with leading nodes 关于不带头结点的单链表:不带头结点的单链表 结点定义: 接口定义: 初始化需要申请头结点,让头指针指向空的头结点。 将申请结点的代码进行封装: 需要越过头结点 找到尾结点,然后插入到尾结点的后面。 对比不带头结点的单链表的尾插

    2024年02月02日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包