数据结构实验之链表三:链表的逆置
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。
输入
输入多个整数,以-1作为结束标志。
输出
输出逆置后的单链表数据。
示例输入
12 56 4 6 55 15 33 62 -1
示例输出
62 33 15 55 6 4 56 12
提示
不得使用数组。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct node
{
struct node *next;
int data;
};
int main()
{
struct node *head, *q;
head = (struct node *)malloc(sizeof(struct node));
head->next = NULL;
int number;
scanf("%d", &number);
int i = 0;
while(number != -1){
q = (struct node *)malloc(sizeof(struct node));
if(i == 0){
q->data = number;
q->next = NULL;
head->next = q;
}else {
q->data = number;
q->next = head->next;
head->next = q;
}
i++;
scanf("%d", &number);
}
q = head->next;
while(q != NULL){
if(q->next != NULL){
printf("%d ", q->data);
}else {
printf("%d", q->data);
}
q = q->next;
}
return 0;
}