方法1:使用3个指针遍历单链表,逐个结点进行反转。

方法2:从第2个节点到第N个节点,依次逐节点插入到第head节点之后(针对有。

法一:逐个结点反转

1)将指针a,b,c依次赋值为连续的三个指针

2)原链表的第一个结点翻转后为最后一个结点,将原链表的第一个结点的next 赋值NULL

3)把b->next 赋值为a,改变指针方向; 将b 赋值为 c,a赋值为b,c赋值为c->next ,边界条件:赋值后的a 为空时,L->next = a; 更新新的表头

LinkList ListReverse(LinkList &L)
{LinkList a = L->next;LinkList b = a->next;LinkList c = b->next;a->next = NULL;int len = GetLength(L);while (len--){b->next  = a;c = b;b = a;if(!a){L->next=a;}else c=c->next;}return L;
}

法二:依次插入到头结点之后(代码针对有头结点的链表)

如果是没有头结点的链表,从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,(N-1)次这样的操作结束之后将第1个节点挪到新表的表尾即可

LinkList ListReverse2(LinkList &L)
{int num;for (int i=2; i <= GetLength(L); i++){ListDeteleByPos_L(L,i,num);ListInsert_L(L,1,num);}return L;
}

转载于:https://www.cnblogs.com/sxy-798013203/p/7774505.html

【 数据结构(C语言)】线性表——链表反转相关推荐

  1. 数据结构与算法 | 线性表 —— 链表

    原文链接:wangwei.one/posts/java-- 链表 定义 逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构 ...

  2. 每隔k次反转一次 链表_PTA 5-2 Reversing Linked List (25) [法一] - 线性表 - 链表反转 (PAT 1074)...

    Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elem ...

  3. C语言数据结构-第二章线性表-电大

    第二章线性表--内容简介 本章将进入线性结构的学习. 线性结构是最简单.最常用的一种数据结构. 本章将学习线性表的定义.顺序和链式两种存储方式及相应存储结构上的运算实现.通过典型示例训练,掌握线性表的 ...

  4. c语言 静态链表插入排序,数据结构C语言版 表插入排序

    西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...

  5. Algorithms_基础数据结构(04)_线性表之链表_单向循环链表约瑟夫环问题

    文章目录 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 约瑟夫问题 结构 分析 大纲图 链表的经典面试题目 如何设计一个LRU缓存淘汰算法 tip:单向链表 约瑟夫问题 N个人围成一圈, ...

  6. Java版数据结构与算法——线性表

    *************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...

  7. 【数据结构】除去线性表中的重复数字

    题目:写一个算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同. 刚看到这个题目给我第一个思路是冒泡排序,可以利用冒泡排序的两层循环找出相同的结点,然后free掉.第一层循环是控制循环的 ...

  8. 数据结构复习题(线性表)

    数据结构复习题(线性表) 线性表 选择题 填空题 判断题 解答题 顺序表的插入和删除 单链表的插入与删除,创建 线性表 选择题 用单链表方式存储的线性表,存储每个节点需要两个域,一个是数据域,另一个是 ...

  9. 大话西游之王道考研数据结构第一讲---线性表的顺序表示

    大话西游之王道考研数据结构第一讲---线性表的顺序表示 写在前面的话 王道考研数据结构是一本非常好的书,本系列所有的内容是按照其书进行讲述的,所以您可以以那本书作为主要内容,这个做参考. 大学时候,在 ...

  10. 线性表算法题库_数据结构与算法(线性表)练习题

    .word 资料 . 三.写一个算法合并两个已排序的线性表. (用两种方法:数组表示的线性表(顺序表)和 指针表示的线性表(链表) ) 要求: 1 .定义线性表节点的结构,并定义节点的型和位置的型. ...

最新文章

  1. java 跨年 周计算公式_如何跨年计算 两日期之间相隔的周数 with java8 time API
  2. 推荐系统超级公开课报名!
  3. JMC | 人工智能在药物发现中的应用:走进广阔的天地
  4. 终端html页面,HTML5的终端适配
  5. jQuery设置和获取HTML、文本和值
  6. LeetCode-字符串-反转字符串中的单词 II
  7. 使用SharePoint Online PowerShell cmdlet有哪些好处?
  8. oracle怎么判断是裸设备安装,Oracle 9i下以裸设备方式安装数据库
  9. Hadoop Map/Reduce的工作流
  10. 狂人日记学习 之一 CSS布局的目的
  11. 微軟將在廉價筆記本電腦上測試Windows
  12. 【路径规划】基于matlab蚁群和粒子群算法双机器人协调路径规划【含Matlab源码 045期】
  13. centos6.5安装mysql-udf-http日记
  14. IOS11降级到IOS10的操作方法(刷机有风险,操作需谨慎)
  15. RK3399平台开发系列讲解(高速设备驱动篇)6.46、蓝牙驱动
  16. EasyExcel注解方式校验数据行
  17. wps和office有什么区别?
  18. 蒙特卡洛树搜索(MTCS)
  19. 杜伽K320W键盘使用手册
  20. can差分线阻抗_为什么要进行阻抗匹配?

热门文章

  1. python 网易_python发送网易邮件
  2. android编写蓝牙工具类,【Android BLE】蓝牙开发「防丢器」的相关知识点(三):手机与设备之间指令传输...
  3. C#中 构造函数的执行
  4. 无法鼠标拖动选择_在 iPad 上用鼠标体验怎么样?我用这 12 款 App 试了一下
  5. 【渝粤教育】广东开放大学 java程序设计基础 形成性考核 (39)
  6. 23种设计模式(十五)接口隔离之适配器
  7. 【ICLR2020】通过强化学习和稀疏奖励进行模仿学习
  8. 强化学习中值迭代收敛性推理证明
  9. 王云燕-永远好奇,一生求知
  10. Python logging日志系统