实现来说很简单,用栈或是递归都可以实现
#include "stdio.h"
#define OK 0
#define ERROR 1
typedef int MYTYPE;
typedef struct Node{
int data;
struct Node *next;
} LNode;
int buildList(LNode **head,int data)
{
LNode *q=NULL;
LNode *p = (LNode *)malloc(sizeof(LNode));
if(NULL == p)
{
return ERROR;
}
p->data= data;
p->next = NULL;
if(*head == NULL)
{
*head = p;
}
else
{
q =*head;
while(q->next!=NULL)
{
q=q->next;
}
q->next = p;
}
return OK;
}
void traverse(LNode *p)
{
if(p->next==NULL)
{
printf("%d ",p->data);
return;
}
traverse(p->next);
printf("%d ",p->data);
}
int main()
{
LNode *head = NULL;
int len=6;
int i=0;
int data;
for(;i<len;i++)
{
scanf("%d",&data);
buildList(&head,data);
}
traverse(head);
return 0;
}