单链表中,没有前驱节点的情况下,删除节点p


void Delete_Elem(LinkList L){
    LinkList p,q;
    p=L->next;
    int a[MAX];
    while(p!=NULL){
        p=(LinkList)malloc(sizeof(LNode));
        if(a[p->data ]==0){
            a[p->data ]=1;
        }
        if(a[p->data] ==1){
            q=(LinkList)malloc(sizeof(LNode));
            q=p->next;
            p->data =p->next->data ;
            p->next =q->next ; 
            free(q);
        }
        p=p->next ;
    }
}

使用辅助数组,这个删除节点的语句是不是有点错误,出不来结果

出不来结果还是结果不对。不过看了代码,确实是不可能出正确结果。还有就是你这个是要完成什么功能?删除所有节点还是还是说只删除某个