`
zy3381
  • 浏览: 155489 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

链表逆序(链表倒置)

阅读更多
将一个链表按逆序排列,即将链头当链尾,链尾当链头

#include<stdio.h>
struct Node
{
    int data;
    struct Node *next;
};

//创建链表
struct Node *create(int n,int count)
{
    int i;
    struct Node *head,*p1,*p2;
    head = p1 = p2 = (struct Node*)malloc(sizeof(struct Node));
    head->data = n;
    for(i=1; i<count; i++)
    {
        p1 = (struct Node*)malloc(sizeof(struct Node));
        p1->data = i+n;
        p2->next = p1;
        p2 = p1;
    }
    p2->next = NULL;
    return head;
}

//链表逆序(用两个指针跑到后面往前指)
struct Node *reverse(struct Node *p)
{
    struct Node *p1,*p2,*head;
    p1 = p2 = head = p;
    while(p != NULL)
    {
        p = p->next;
        if(p1 == head)
        {
            p1->next = NULL;
        }
        else
        {
            p1->next = p2;
        }
        p2 = p1;
        p1 = p;
    }
    return p2;
}

void main()
{
    struct Node *p,*head;
    //创建链表
    head = p = create(3,5);

    printf("链表初始数据:\n");
    while(p)
    {
        printf("%d\n", p->data);
        p = p->next;
    }

    p = head;

    printf("\n逆转链表:\n");
    p = reverse(p);
    while(p)
    {
        printf("%d\n", p->data);
        p = p->next;
    }
}













分享到:
评论

相关推荐

    数据结构链表排序数据结构课设,链表排序,升序,逆序,倒置

    数据结构课设,链表排序,升序,逆序,倒置

    给定一个不带头结点的单链表,写出将链表倒置的算法

    给定一个不带头结点的单链表,写出将链表倒置的算法

    将两个升序链表A、B合并到C,并使C成为降序

    方法一:依次比较A、B的各结点,将较小的赋给C,A、B结点都赋给C后,再将C表逆序,得到降序表; 方法二:依次比较链表A、B,然后将结点赋给C表,在C中表从头结点前面进行插入操作,最后直接得到降序的C表。

    validnumberleetcode自动机-coderjia-to-architect:JiA同学的代码人生,各种优秀语言、框架、中间件、神

    链表逆序 判断链表是否有环 将数组整体向后移动n个位置 合并两个有序链表 合并两个有序数组 数字加一 栈和队列(6) 括号匹配问题 哈希表和二叉树(8) 算法 递归(12) 分治回溯(5) 深度优先广度优先(8) ...

    传智播客扫地僧视频讲义源码

    04_字符串反转_方法2递归逆序(3个点)_传智扫地僧 05_考试题解答和项目开发代码书写手法 06_一级指针易错模型分析_重点 07_C语言中的const知识点总结 08_指针的输入和输出模型 09_课堂答疑_指针所指向内存释放 10_...

    C程序范例宝典(基础代码详解)

    实例091 双链表逆序输出 120 实例092 约瑟夫环 122 实例093 创建顺序表并插入元素 123 实例094 向链表中插入结点 125 实例095 从链表中删除结点 126 实例096 合并两个链表 129 实例097 单链表就地逆置...

    Java范例开发大全 (源程序)

     实例215 利用栈将字符串逆序输出 381  实例216 动态的数组链表 382  实例217 你能猜出鱼是谁的宠物吗? 387  实例218 使用Collections类对List的排序操作 393  实例219 LinkedList的添加删除操作 395  ...

    java范例开发大全(pdf&源码)

    实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector...

    java范例开发大全源代码

     实例113 倒置字符串 149  实例114 去除重复字符 149  实例115 检查是否是回文 151  第7章 输入/输出流(教学视频:116分钟) 152  7.1 文件和目录 152  实例116 显示文件的基本信息 152  实例...

    java范例开发大全

    实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector...

    Java范例开发大全(全书源程序)

    实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用...

Global site tag (gtag.js) - Google Analytics