数据结构实验之链表二:逆序建立链表

数据结构实验之链表二:逆序建立链表

Time Limit: 1000MS Memory limit: 65536K

题目描述

输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据。

输入

第一行输入整数N;;
第二行依次输入N个整数,逆序建立单链表。

输出

依次输出单链表所存放的数据。

示例输入

10
11 3 5 27 9 12 43 16 84 22 

示例输出

22 84 16 43 12 9 27 5 3 11 

提示

不能使用数组!

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct node
{
    struct node *next;
    int data;
};
int main()
{
    struct node *head, *p, *q;
    int n;
    scanf("%d", &n);
    head = (struct node *)malloc(sizeof(struct node));
    head->next = NULL;
    for(int i = 0;i < n;i++){
        p = (struct node *)malloc(sizeof(struct node));
        if(i == 0){
            scanf("%d", &p->data);
            p->next = NULL;
            head->next = p;
        }else {
            scanf("%d", &p->data);
            p->next = head->next;
            head->next = p;
        }
    }
    q = head->next;
    while(q != NULL){
        if(q->next != NULL){
            printf("%d ", q->data);
        }else {
            printf("%d", q->data);
        }
        q = q->next;
    }


    return 0;
}


你可能感兴趣的:(数据结构实验之链表二:逆序建立链表)