链表就地逆置

来源:互联网 发布:nginx 添加第三方模块 编辑:程序博客网 时间:2024/05/01 10:07
#include<stdio.h>#include<stdlib.h>#define NULL 0typedef struct LNode{    struct LNode *next;    int data;}LNode,*lnode;void createList(lnode &l,int n){    lnode p,q;    l=(lnode)malloc(sizeof(LNode));    p=l;    for(int i=0;i<n;i++)    {        q=(lnode)malloc(sizeof(LNode));        scanf("%d",&q->data);        p->next=q;        p=q;    }    p->next=NULL;}void inverse(lnode &l){    lnode p,r;    p=l->next;    l->next=NULL;    while(p)    {        r=p;        p=p->next;        r->next=l->next;        l->next=r;    }}void printList(lnode l){    lnode p;    p=l->next;    while(p)    {        printf("%d ",p->data);        p=p->next;    }}void main(){    lnode A,B;    int n;    scanf("%d",&n);    printf("input list: \n");    createList(A,n);    inverse(A);    printf("inversed output : \n");    printList(A);    printf("\n");}
0 0
原创粉丝点击