struct Node**phead

*phead

oldHead->next

newHead

tmp

&head

#include <stdio.h>
#include <stdlib.h>
struct Node{int data;struct Node* next;
};
struct Node* createList(){/* 细节省略 */
}
void reverseList(
struct Node**phead ){struct Node* tmp, *newHead, *oldHead;newHead = NULL;oldHead =
*phead;while(oldHead){tmp = oldHead;oldHead =
oldHead->next;tmp->next =
newHead;newHead =
tmp;}*phead = newHead;
}
int main(){struct Node* head=createList();reverseList(
&head);return 0;
}

以下这段程序将单链表逆转。(单链表不带有空头结点,链表头指针是head)例如,链表 1 -> 2 -> 3 -> 4 逆转后变为 4 -> 3 -> 2 -> 1 .相关推荐

  1. 单链表:头结点和头指针的实现方式

    链式存储是什么样的结构? 链式存储结构的特点使用任意的存储单元存储线性表的数据元素,存储单元可以使连续的也可以是不连续的,因此,为了表示每个数据元素和下一个元素的关系,除了存储本身的信息之外,还需要存 ...

  2. 数据结构5: 链表(单链表)的基本操作及C语言实现

    逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...

  3. 线性表:3.链表,单链表详解与C语言实现

    逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为 线性表的链式存储 . 由于分散存储,为了能够体现出数据元素之间的逻 ...

  4. 算法精解_C语言 链表_单链表(接口定义+类型实现)

    链表可以说是一种最为基础的数据结构.链表由一组元素以一种特定的顺序组合或链接而成,在维护数据的集合时很有用.这一点同我们常用的数组很相似.然而,链表在很多情况下比数组更有优势.特别是在执行插入和删除操 ...

  5. 线性表详解(静态链表、单链表、双向链表、循环链表)

    目录 申明 1. 线性表的定义 2. 线性表的抽象数据类型 3. 线性表的顺序存储结构 3. 1 顺序存储定义 3. 2 顺序存储方式 3. 3 数据长度与线性表长度区别 3. 4 地址计算方法 4. ...

  6. 单链表操作实现getelem_c语言实现--带头结点单链表操作

    可能是顺序表研究的细致了一点,单链表操作一下子就实现了.这里先实现带头结点的单链表操作. 大概有以下知识点. 1;结点:结点就是单链表中研究的数据元素,结点中存储数据的部分称为数据域,存储直接后继地址 ...

  7. 带头结点单链表、不带头结点单链表(头指针单链表)

    1.头结点和头指针的区别 1.1区别: 头指针表明了链表的结点,可以唯一确定一个单链表. 头指针指向链表的第一个结点,其记录第一个存储数据的结点的地址. 头结点是点链表的第一个结点,若单链表有头结点, ...

  8. 可由一个尾指针唯一确定的链表有_极客算法训练笔记(三),链表详细图解,别再逃避了朋友...

    目录 缓存引爆链表 链表单链表双向链表循环链表双向循环链表 LinkedHashMap实现LRU缓存,源码解析(JDK1.8) 算法 爬楼梯 算法 反转链表 算法 链表环检测 缓存引爆链表 存储结构 ...

  9. 剑指offer:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。

    在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后为 1-& ...

最新文章

  1. 实战 Docker+Kubernetes 微服务容器化(二)-微服务带来的问题及解决方案分析
  2. 学好python能干嘛-python都能做什么
  3. @async方法不调用了_在Spring中使用Future对象调用Async方法调用
  4. 12.1 LNMP架构介绍 12.2 MySQL安装 12.3/12.4 PHP安装 12.5 Nginx介绍
  5. .net mysql参数化查询,ASP.NET中的mysql参数化查询
  6. 使用Kibana工具测试elasticsearch数据
  7. Anscombe's Quartet 问题
  8. Android 应用FPS测试方法介绍
  9. 概率的意义:随机世界与大数法则
  10. Frefox安装AeroFox皮肤插件后菜单字体的美化
  11. Executing an update/delete query报错
  12. 模式识别属于计算机科学吗,模式识别与智能系统这个学科属于什么类?
  13. JavaScript打开窗口
  14. 【python】filetype根据内容推测文件类型
  15. Ventrilo初学者指南,面向游戏玩家的VoIP应用
  16. mysql比较两张表中两个字段值_如何通过SQL找出2个表里值不同的列的方法
  17. 重庆博物馆的智慧公厕管理系统
  18. 一、LCD12864(带字库的)使用教程:
  19. 数据挖掘-二项逻辑斯蒂回归模型算法的R实现
  20. RJ45和PSY之间为什么用网络变压器

热门文章

  1. 实现类似于头脑风暴的小游戏
  2. Bluetooth CSR部分笔记
  3. java 基础 笔试题_非常全面的java基础笔试题
  4. aix服务器怎么修改ip,AIX使用命令修改网卡IP地址,永久生效
  5. 渗透测试学习之靶机DC-6
  6. MATLAB GUI界面
  7. rabbitMQ快速开始整合springboot模板
  8. 数据库设计报告——用教材管理系统来举例
  9. 【超详细】(蓝桥杯Python)阶乘约数:求100阶乘的正约数个数。
  10. 一家国际货运公司的销售过程管理、报价管理