https://www.cnblogs.com/eniac12/p/4860642.html
template<class T>
void List<T>::Inverse()
{if(first == NULL)    return;LinkNode<T> *p, *prev, *latter;    p = first->link;      // 当前结点prev = NULL;          // 前一结点latter = p->link;      // 下一结点while(p != NULL){p->link = prev;      // 当前结点指针指向前一结点prev = p;            // 后移p = latter;if(p != NULL)        // 如果p指针是NULL,已经满足终止条件latter = p->link;}first->link = prev;;    // 最后连上附加头结点
}

https://blog.csdn.net/ljyljyok/article/details/77996029

LINK_NODE *ReverseLink(LINK_NODE *head)

{

LINK_NODE *next;

LINK_NODE *prev = NULL;

while(head != NULL)

{

next = head->next;

head->next = prev;

prev = head;

head = next;

}

return prev;

}

http://www.nowamagic.net/librarys/veda/detail/2241

/* 单链表反转/逆序 */
Status ListReverse(LinkList L)
{LinkList current,pnext,prev;if(L == NULL || L->next == NULL)return L;current = L->next;  /* p1指向链表头节点的下一个节点 */pnext = current->next;current->next = NULL;while(pnext){prev = pnext->next;pnext->next = current;current = pnext;pnext = prev;printf("交换后:current = %d,next = %d \n",current->data,current->next->data);}//printf("current = %d,next = %d \n",current->data,current->next->data);L->next = current;  /* 将链表头节点指向p1 */return L;
}

http://www.nowamagic.net/librarys/veda/detail/2242

Status ListReverse2(LinkList L)
{LinkList current, p;if (L == NULL){return NULL;}current = L->next;while (current->next != NULL){p = current->next;current->next = p->next;p->next = L->next;L->next = p;}return L;
}

http://www.nowamagic.net/librarys/veda/detail/2242

Status ListReverse3(LinkList L)
{LinkList newList;    //新链表的头结点LinkList tmp;       //指向L的第一个结点,也就是要摘除的结点//参数为空或者内存分配失败则返回NULLif (L == NULL || (newList = (LinkList)malloc(sizeof(Node))) == NULL){return NULL;}//初始化newListnewList->data = L->data;newList->next = NULL;//依次将L的第一个结点放到newList的第一个结点位置while (L->next != NULL){tmp = newList->next;         //保存newList中的后续结点newList->next = L->next;       //将L的第一个结点放到newList中L->next = L->next->next;     //从L中摘除这个结点newList->next->next = tmp;        //恢复newList中后续结点的指针}//原头结点应该释放掉,并返回新头结点的指针free(L);return newList;
}

单链表逆序的多种方式相关推荐

  1. 单链表逆序生成及逆置的完整实现

    单链表逆序生成及逆置的完整实现 本例中单链表数据类型定义成int型,可更改 头文件1(1.h) 宏定义及Status类型定义 头文件2(2.h) 单链表基本操作函数与逆置函数 include" ...

  2. c语言单链表_C语言笔试题—单链表逆序

    前情回顾 之前更多的是给大家推荐的是好用的软件,经过反思之后觉得这些东西并不是我想要的,所以从今天开始我要转变方向了,更多的往我的专业方向去发展(虽然我是个小白),当然如果有说的不对的地方,希望大家能 ...

  3. 通过迭代(非递归)及递归将单链表逆序

    通过迭代(非递归)及递归将单链表逆序 老生常谈的问题了,不过很多地方面试还是很喜欢问这个问题.实际工程中感觉用处不大,需要逆序的存储为什么要选择单链表呢?为什么不用list(in c++)或itera ...

  4. c语言将一个已知头结点的单链表逆序_C语言实现单链表逆序与逆序输出实例

    单链表的逆序输出分为两种情况,一种是只逆序输出,实际上不逆序:另一种是把链表逆序.本文就分别实例讲述一下两种方法.具体如下: 1.逆序输出 实例代码如下: #include #include #inc ...

  5. 单链表逆序输出(递归)

    将单链表逆序输出 对于单链表逆序输出不改变链表结构可以考虑使用递归实现. 递归输出的主要思路为:先输出除当前节点外的后继子链表,然后输出当前结点.假如链表为:1->2->3->4-& ...

  6. 链表逆序 递归 java_将链表逆序(递归方式)

    namespace ShopEx.CRS.Test { /// ///将链表逆序 /// public class ReverseLinkList { //入口 public static void ...

  7. C语言的单链表逆序和指定范围逆序

    文章目录 前言 逆序 指定范围逆序 源码实现 前言 关于链表的逆置,是考察对链表指针的理解.知道了如何不实用额外空间,同时使用O(n)复杂度对链表进行逆序之后将会对链表有好理解. 同时关于如何在指定范 ...

  8. c语言将一个已知头结点的单链表逆序_C语言数据结构实现链表逆序并输出

    C语言数据结构实现链表逆序并输出 将一个链表逆序并输出.我用了两种方法来实现,第一种是借助了一个新的空链表:第二种是在原来链表的基础上直接实现逆序. 实例代码: 头文件: #include #incl ...

  9. c语言实现单链表逆序算法,C语言解字符串逆序和单向链表逆序问题的代码示例...

    字符串逆序上次面试碰到一个单向链表逆序的题目,幸好对字符串逆序比较熟悉,类比做出来了.字符串逆序比较简单,直接上代码: void stringReverse(char* p1,char* p2) { ...

最新文章

  1. 挑战杯科展上的智能车作品
  2. 关于Linux发行版本RedHat9中文输入法使用问题的说明
  3. 全球首家!B站上线“杜比视界”给UP主用,“观众眼睛要被养刁了”
  4. 异步任务下载apk文件并弹出对话框提示当前进度,文件下载结束后弹出安装界面
  5. 隐藏1:N关系和工具
  6. php单例型(singleton pattern)
  7. oracle如何检查是否rac,Oracle RAC 状态检查
  8. SJTU OJ 3046 足球 题解
  9. 蔚来辅助驾驶致死,副总裁沈斐或遇更大危机
  10. p8b75-m修改bios文件_傻瓜式方法:VMWARE使用NAT方式彻底解决开发板无法挂载ubuntu文件的难题...
  11. java web程序设计任务教程——源码(全)
  12. Python简答题编程题
  13. poi导出excel在单元格内画斜线
  14. 计算机动画制作 课件,第四章 计算机动画的制作与编辑-课件(PPT).ppt
  15. js实现雪花飘落效果
  16. 强化练习200题(二)正题:123
  17. Python视频抽帧,视频转图片帧并保存
  18. SK6# 上海居转户随记
  19. 10个预训练模型开始你的深度学习(计算机视觉部分)
  20. string.find()函数用法

热门文章

  1. 20170117小测
  2. HDU 2602.Bone Collector-动态规划0-1背包
  3. 使用MJRefresh自定义下拉刷新,上拉加载动画
  4. C# 连接Oracle数据库以及一些简单的操作
  5. 2013.8.7Java语言基础——数组
  6. python填表_小Python填表得到d
  7. 华为服务器系统蓝屏,服务器主机蓝屏
  8. java afconsole_Java ——基础语法
  9. ubuntu dhcp ping 不通 自己_??2、DHCP安装和配置
  10. linux静默删除文件夹,Linux常用命令10 - unzip