编辑代码

#include <stdio.h>
#include<stdlib.h>
#include<stdbool.h>
typedef struct LNode{
    int data;
    struct LNode *next;
}LinkList;
typedef struct DLNode{
    int data;
    struct DLNode* prev,* next;
}DLinkList;
LinkList* List_InsertHead(LinkList *h){
    int x;LinkList* s;
    h = (LinkList*)malloc(sizeof(LinkList));
    h->next = NULL;
    scanf("%d",&x);
    while(x!=-1){
        s = (LinkList*)malloc(sizeof(LinkList));
        s->data = x;
        s->next = h->next;
        h->next = s;
        scanf("%d",&x);
    }
    return h;
}
LinkList* List_InsertTail(LinkList* h){
    int x;LinkList* t = h;LinkList* s;
    h = (LinkList*)malloc(sizeof(LinkList));
    t = h;
    t->next=NULL;
    scanf("%d",&x);
    while(x!=-1){
        s = (LinkList*)malloc(sizeof(LinkList));
        s->data = x;
        s->next = NULL;
        t->next = s;
        t = s;
        scanf("%d",&x);
    }
    return h;
}
LinkList* GetElem(LinkList *h,int i){
    LinkList* p = h->next;
    int j = 1;
    if(i==0){
        return h;
    }
    if(i<0){
        return NULL;
    }
    while(j<i){
        p = p->next;
        j++;
    }
    return p;
}
LinkList* LocateElem(LinkList* h,int i){
    LinkList* p = h->next;
    while(p&&p->data!=i){
        p = p->next;
    }
    return p;
}
bool List_Insert(LinkList* h,int i,int x){
    if(i<=0){
        return false;
    }
    LinkList* prev=GetElem(h,i-1);
    LinkList* s=(LinkList*)malloc(sizeof(LinkList));
    s->data = x;
    s->next = prev->next;
    prev->next = s;
    return true;
}
bool List_Del(LinkList* h,int i){
    if(i<=0){
        return false;
    }
    LinkList* prev = GetElem(h,i-1);
    LinkList* temp = prev->next;
    prev->next = temp->next;
    free(temp);
    return true;
}
bool Link_Del_Same(LinkList* h,int x){
    
}
int List_Length(LinkList* h){
    int i = 0;
    LinkList* s = h;
    while(s->next!=NULL){
        s = s->next;
        i++;
    }
    return i;
}
void main(){
    LinkList* L1;
    L1 = List_InsertTail(L1);
    printf("%d",List_Length(L1));
}