#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node * next;
}Node;
//尾插法
#if 0
Node * createList()
{
Node * head = (Node *)malloc(sizeof(Node));
if (NULL == head)
exit(-1);
head->next = NULL;
Node *t = head,*cur;
int nodeData;
scanf("%d",&nodeData);
while(nodeData)
{
cur = (Node *)malloc(sizeof(Node));
if(NULL == head)
exit(-1);
cur ->data = nodeData;
t -> next = cur;
t = cur;
scanf("%d",&nodeData);
}
t->next = NULL;
return head;
}
#endif
//头插法
Node * createList()
{
Node * head = (Node *)malloc(sizeof(Node));
if (NULL == head)
exit(-1);
head->next = NULL;
Node *cur;
int nodeData;
scanf("%d",&nodeData);
while(nodeData)
{
cur=(Node *)malloc(sizeof(Node));
if(NULL==head)
exit(-1);
cur -> data = nodeData;
cur -> next = head -> next;
head -> next = cur;
scanf("%d",&nodeData);
}
return head;
}
void traverseList(Node *head)
{
head = head -> next;
while(head)
{
printf("%d\n",head -> data);
head = head -> next;
}
}
int main(int argc, char *argv[])
{
Node *head = createList();
traverseList(head);
return 0;
}