美文网首页数据结构
单向链表逆序

单向链表逆序

作者: Unlucky | 来源:发表于2016-09-22 14:57 被阅读0次

一则面试题:写一个方法,讲一个单向链表逆序。


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

//创建链表
Node *creat(int n)   //n为节点个数
{
    Node *head, *p, *s; 
    int i; 
    p = head = (Node *)malloc(sizeof(Node)); 
    for(i = 1;i <= n;i++) 
    { 
        s = (Node *)malloc(sizeof(Node)); 
        scanf("%d",  &s->data); 
        p->next = s; 
        p = s; 
    } 
    p->next = NULL; 
    return head; 
} 

//原地置换 
void reverse(Node *head)
{    
    Node *p,*s,*t; 
    p = head; 
    s = p->next; 
    //主要置换过程
    while(s->next != NULL) 
    {        
        t = s->next; 
        s->next = p; 
        p = s; 
        s = t; 
    } 
    s->next = p; 
    head->next->next = NULL;  //收尾 
    head->next = s;  //赋头 
} 

//显示链表内容
void display(Node *head) 
{ 
    Node *p; 
    p = head->next; 
    while(p != NULL) 
    {        
        printf("%d ",p->data); 
        p = p->next; 
    } 
    printf("\n"); 
} 
int main() 
{
     int n;
     Node *head; 
     printf("请输入链表节点数:");
     scanf("%d",&n);
     head = creat(n);
     printf("原链表:\n"); 
     display(head); 
     reverse(head); 
     printf("置换后链表:\n"); 
     display(head); 
}

运行:

请输入链表节点数:5
11 22 33 44 55
原链表:
11 22 33 44 55 
置换后链表:
55 44 33 22 11

相关文章

  • 数据结构--关于链表的一些算法问题

    单向链表逆序问题 注意这里是单向链表,所以只能从头向尾遍历。 单向链表的逆序主要有以下两种方式。 使用栈的先进后出...

  • Python 将链表逆序

    说明:链表逆序,是将链表中的单向链表逆序,双向链表逆序和正序都是一样的,所以没有任何意义。 代码: class N...

  • 单向链表逆序

    一则面试题:写一个方法,讲一个单向链表逆序。 运行:

  • 已知单向链表的头结点head,写一个函数把这个链表逆序

    已知单向链表的头结点head,写一个函数把这个链表逆序 :struct Node{int data ;Node n...

  • 5. 链表+逆序打印单向链表

    方法很多啊 使用一个额外的栈 使用递归 为什么网上的代码在if里面还要再判断next不是null? 翻转链表,再打...

  • Day9

    学习内容:数据链表(2/2)收获: 进一步掌握了单向链表的构建、遍历、查找、释放、删除、排序及逆序等操作; 完成了...

  • 8.单向链表SingleLinkList

    目录:1.单向链表的定义2.单向链表的图解3.单向链表定义操作4.单向链表的实现 1.单向链表的定义 2.单向链表...

  • 线性表-单向循环链表

    为了方便,本文介绍的单向循环链表不包含头节点 单向循环链表内容 单向循环链表的的定义 单向循环链表的创建 单向循环...

  • 两数相加 swift

    单向链表实现题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,...

  • 10.单向循环链表SingleCycleLinkList

    目录:1.单向循环链表的定义2.单向循环链表的图解3.单向循环链表定义操作4.单向循环链表的实现 1.单向循环链表...

网友评论

    本文标题:单向链表逆序

    本文链接:https://www.haomeiwen.com/subject/fcuzettx.html