动态创建头插法
#include <stdio.h>
#include <stdlib.h>
struct Test
{
int data;
struct Test *next;
};
void printLink(struct Test *head)
{
struct Test *p = head;
while(p != NULL){
printf("%d ",p->data);
p = p->next;
}
putchar('\n');
}
struct Test* inserFromHead(struct Test *head)
{
if(head == NULL){ // 第一种情况,链表是空的,那么创建出来的那个节点就是头节点
head = new;
}else{
new->next = head;
head = new;
}
return head;
}
struct Test* createLink(struct Test *head)
{
struct Test *new = NULL;
while(1){
new = (struct Test *)malloc(sizeof(struct Test));
puts("请输入数据!");
scanf("%d", &(new->data));
new->next = NULL;
if(new->data == 0){
printf("0 quit\n");
free(new);
return head;
}
head = insertFromHead(head, new);
}
}
struct Test *head = NULL;
head = inserFromHead(head);
printLink(head);