首页 > 其他分享 >链表逆序

链表逆序

时间:2024-04-27 21:34:59浏览次数:14  
标签:tmp head list next 链表 single 逆序

编写一个函数,实现单链表逆序,,函数原型如下:

*void reverse_list(single_list head)

程序代码如下:

void reverse_list(single_list *head)
{
   single_list *p = head->next; //将链表除头节点的节点保存
   head->next = NULL;//将链表断开
   single_list *tmp = NULL;
   while(p != NULL)
   {
    tmp = p->next;//将后面还未逆序的节点保存

    //将p插入到head的后面
    p->next = head->next;
    head->next = p;

    //将tmp的值赋给p 

    p = tmp;
   }
}

标签:tmp,head,list,next,链表,single,逆序
From: https://www.cnblogs.com/JinBool/p/18162572

相关文章

  • 单向循环链表接口设计
    目录单向循环链表接口设计创建新的头结点创建新节点并初始化该节点工具函数遍历链表查找尾结点查找尾结点前置驱动找到指定结点查找指定节点前置驱动创建每一个新节点并插入到头部新建结点并插入到尾部新建结点并插入到指定节点之后删除头部结点删除尾部结点删除指定结点调试函数......
  • 双向循环链表的头插法的实现
    include<stdio.h>include<stdlib.h>typedefstructslik{intdata;structslik*next;structslik*prev;}sli;voidcreatesli(sli**head,inta[],intsize){for(inti=0;i<size;i++){sli*s=(sli*)malloc(sizeof(sli));s->data=a[i];......
  • 单向循环链表的头插法实现
    ``#include<stdio.h>``````include<stdlib.h>typedefstructslik{intdata;structslik*next;}sli;voidcreatesli(sli**head,inta[],intsize){for(inti=0;i<size;i++){sli*s=(sli*)malloc(sizeof(sli));s->data=a[i];s->......
  • 单向循环链表的尾插法实现
    `#include<stdio.h>include<stdlib.h>typedefstructslik{intdata;structslik*next;}sli;voidcreatesli(sli**head,inta[],intsize){for(inti=0;i<size;i++){sli*s=(sli*)malloc(sizeof(sli));s->data=a[i];s->next=NU......
  • 单向链表队列程序接口设计
    目录目录单向链表构建队列的接口函数库函数的调用指的是链表队列中的元素的数据类型,用户可以根据需要进行修改构造记录链表队列LinkQueueNode各项参数(链表队列结点的指针指向的下一个结点地址+链表队列的结点数据)的结构体构造记录链表队列LinkQueue各项参数(链表队列的队首地......
  • 数据结构_链表_双向循环链表的初始化、插入、删除、修改、查询打印(基于C语言实现)
    版本:2024年4月26日V1.0发布于博客园/***@filename:DoubleLinkedList.c*@brief:实现双向循环链表的相关功能*@author:[email protected]*@date:2024/04/26*@version:1.0*@note:*CopyRight(c)2023-2024RISE_AND......
  • 以链表为基础实现链式队列
    以链表为基础实现链式队列如果打算以链表作为基础来实现队列的操作,可以避免内存浪费以及避免内存成片移动,只需要确定队头和队尾即可,一般把链表头部作为队头,可以实现头删,把链表尾部作为队尾,可以实现尾插。#include<stdio.h>#include<stdbool.h>#include<stdlib.h>//对输入......
  • 双向循环链表
    双向循链表双向循环链表我是在双向循环链表上进行升级,就是双向循环链表首结点和尾结点相链接,首结点的prev链接尾结点本身,尾结点的next链接首结点本身,在对头部或者尾部操作的时候与双向链表有区别,具体代码写在下面。希望看完代码的你发现错误,请评论批评指正,非常感谢。目录双......
  • 自定义单链表队列的基本接口函数(非循环队列)
    单链表构建队列的接口函数/********************************************************************文件名称: 单链表构建队列的接口函数文件作者:[email protected]创建日期:2024/04/26文件功能:对单链表循环队列的增删改查功能的定义注意事项:NoneCop......
  • 单链表根据尾插法建立
    include<stdio.h>include<stdlib.h>typedefstructslik{intdata;structslik*next;}sli;voidcreatesli(sli**head,inta[],intsize){for(inti=0;i<size;i++){sli*s=(sli*)malloc(sizeof(sli));s->data=a[i];s->next=NULL......