数据结构实验之链表三:链表的逆置

来源:互联网 发布:寒夜 巴金 知乎 编辑:程序博客网 时间:2024/05/16 17:47

数据结构实验之链表三:链表的逆置

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic

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
#include <bits/stdc++.h>using namespace std;struct node{    int data;    node *next;};struct node* creat(){    int a;    node *head, *tail, *p;    head = new node;    head->next = NULL;    tail = head;    while(cin >> a, a != -1)    {        p = new node;        p->data = a;        p->next = NULL;        tail->next = p;        tail = p;    }    return (head);}struct node *Reverse(struct node *head){    struct node *p, *q;    p = head->next;    head->next = NULL;    q = p->next;    while(p)    {        p->next = head->next;        head->next = p;        p = q;        if(q)            q = q->next;    }    return (head);}void display(struct node *head){    struct node *p;    for(p = head->next; p; p=p->next)    {        if(p->next)            cout << p->data << " ";        else            cout << p->data << endl;    }}int main(){    struct node *head;    head = creat();    head = Reverse(head);    display(head);    return 0;}


0 0