/*
单链表的思维简直颠覆了我的世界观啊
算法的力量就是这么有趣而强大
*/
#include <stdio.h>
#include <stdlib.h>
struct node{
int data;
struct node *next;
};
int main(){
struct node *q, *p, *head , *t; //指向动态内存、指向前一个结点、指向第一个结点、便利结点输出data
int i, n, a;
printf("请输入链表数据个数:\n");
scanf("%d", &n);
//创建链表
head = NULL;
printf("请输入链表数据:\n");
for (i = 0; i < n; i++){
scanf("%d", &a);
p = (struct node*)malloc(sizeof(struct node)); //p指向动态建立的node结点空间
p -> data = a;
p -> next = NULL;
if (head == NULL)
head = p;
else
q -> next = p;
q = p;
}
//输出链表
t = head;
while (t != NULL){
printf("%d ", t -> data);
t = t ->next; //t指向下一个结点
}
return 0;
}