数据结构实验之链表二:逆序建立链表
Time Limit: 1000MS
Memory Limit: 65536KB
Submit
Statistic
Problem Description
输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据。
Input
第一行输入整数N;;
第二行依次输入N个整数,逆序建立单链表。
第二行依次输入N个整数,逆序建立单链表。
Output
依次输出单链表所存放的数据。
Example Input
10 11 3 5 27 9 12 43 16 84 22
Example Output
22 84 16 43 12 9 27 5 3 11
01 | #include <stdio.h> |
02 | #include <stdlib.h> |
03 | struct node |
04 | { |
05 | int data; |
06 | struct node *next; |
07 | }; |
08 | int main() |
09 | { |
10 | int n, i; |
11 | struct node *head, *p; |
12 | head = ( struct node *) malloc ( sizeof ( struct node)); |
13 | head->next = NULL; |
14 | scanf ( "%d" , &n); |
15 | for (i = 0;i<n;i++) |
16 | { |
17 | p = ( struct node *) malloc ( sizeof ( struct node)); |
18 | scanf ( "%d" , &p->data); |
19 | p->next = head->next; |
20 | head->next = p; |
21 | } |
22 | for (i = 0;i<n;i++) |
23 | { |
24 | if (p->next==NULL) |
25 | { |
26 | printf ( "%d\n" , p->data); |
27 | } |
28 | else |
29 | { |
30 | printf ( "%d " , p->data); |
31 | } |
32 | p = p->next; |
33 | } |
34 | return 0; |
35 | } |