完整源代码:
#include<stdio.h>
#include <stdlib.h>
typedef struct node {
int id;
struct node *next;
}node;
int main() {
node* head = (node*)malloc(sizeof(node));//创建head结点
head->next = NULL;
node *p = head;//工作指针p
printf("请输入第一个结点的数据域id:\n");
scanf_s("%d", &p->id);
printf("请输入插入的数据(输入0表示结束)\n");
while (p->id != 0) {
node *q = (node*)malloc(sizeof(node));//开辟一个新结点q
q->next = head;//将这个节点插入头节点
head = q;
p = q;
scanf_s("%d", &p->id);//插入数据
}//while
while (p != NULL) {
printf("%d ", p->id);
p = p->next;
}//while
}