链表操作

#include <stdio.h>
#include <stdlib.h>

typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*LinkList;
LinkList list_headinsert(LinkList &L)
{
    L=(LinkList)malloc(sizeof(LNode));
    LNode *s;
    int i=0;
    L->next=NULL;
    while(i<=20)
    {
        s=(LNode*)malloc(sizeof(LNode));
        s->data=i;
        s->next=L->next;
        L->next=s;
    }
}
LinkList list_tailinsert(LinkList &L)
{
    L=(LinkList)malloc(sizeof(LNode));
    LNode *s,*r=L;
    int i=0;
    while(i<=20)
    {
        s=(LNode*)malloc(sizeof(LNode));
        s->data=i;
        r->next=s;
        r=s;
    }
    r->next=NULL;
}
void print(LinkList &L)
{
    LNode *p=L->next;
    while(p!=NULL)
    {
        printf("%d   ",p->data);
        p=p->next;
    }
    printf("\n");
}
void delx(LinkList &l,int x)
{
    LNode *p;
    if(L==NULL)
    {
        return;
    }
    if(L->data==x)
    {
        p=L;
        L=L->next;
        free(p);
        delx(L,x);
    }
    else
        delx(L->next,x);
}
int main()
{
    LinkList L;
    list_tailinsert(L);
    print(L);
    printf("Hello world!\n");
    return 0;
}