链表的逆置

来源:互联网 发布:苹果吉他软件效果器 编辑:程序博客网 时间:2024/05/16 15:44

Problem Description

输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。

Input

输入多个整数,以-1作为结束标志。

Output

输出逆置后的单链表数据。

Example Input

12 56 4 6 55 15 33 62 -1

Example Output

62 33 15 55 6 4 56 12

Author

 
#include <bits/stdc++.h>using namespace std;struct node{    int data;    struct node *next;};struct node *CreatList(int n){    struct node *head,*tail,*p,*q;    int i;    head = (struct node *)malloc(sizeof(struct node));    head->next=NULL;    tail=head;    while(1)    {        p=(struct node *)malloc(sizeof(struct node));        cin>>p->data;        if(p->data==-1)            break;        p->next=NULL;        tail->next=p;        tail=p;    }    p=head->next;    q=p->next;    head->next=NULL;    while(p)    {        p->next=head->next;        head->next=p;        p=q;        if(q)            q=q->next;    }    return (head);};int main(){    struct node *head,*r;    int i,j,k,m,n;    head=CreatList(n);    r=head->next;    while(r)    {        if(r->next==NULL)            cout<<r->data<<endl;        else            cout<<r->data<<" ";        r=r->next;    }    return 0;}

0 0
原创粉丝点击