链表,想测试一下代ListDelete(L,3),尾插法建立链表后,删除链表中第三个元素后遍历输出

链表,想测试一下代码ListDelete(L,3),尾插法建立链表后,删除链表中第三个元素后遍历输出
问题相关代码,请勿粘贴截图
#include<iostream> 
#include<malloc.h>
using namespace std;
typedef struct LNode{
    char data;
    struct LNode *next;
}LNode,*LinkList;

//按位序删除
bool ListDelete(LinkList &L,int i){
    if(i<1)
        return false;
    //以下六行可用LNode *p=GetElem(L,i-1)代替;找到第i-1个节点 
    LNode *p;//指向当前正在扫描结点的指针 
    int j=0;//当前正在扫描节点的位置
    p=L; 
    while(p!=NULL&&j<i-1){
        p=p->next;
        j++;
    }
    
    if(p==NULL)
        return false;
    if(p->next=NULL)
        return false;
    LNode *q=p->next;
    p->next=q->next;
    free(q); 
    return true;
} 

//尾插法建立单链表
LinkList List_TailInsert(LinkList &L){
    L=(LinkList)malloc(sizeof(LNode));
    L->next=NULL; //这一句不写也没事,但头插法必须要写 
    LNode *s,*r=L;//指向表尾 
    char x;
    cin>>x;
    while(x!='z'){
        s=(LNode *)malloc(sizeof(LNode));
        s->data=x;
        r->next=s;
        r=s;
        cin>>x;
    }
    r->next=NULL;
    return L;
} 

int main(){
    LinkList L;
    List_TailInsert(L);
    ListDelete(L,3);
    LNode *p=L->next;
    while(p!=NULL){
        cout<<p->data;    
        p=p->next;
     
    } 

}
运行结果及报错内容

我想测试一下代码,测试ListDelete(L,3)这块代码,删除链表中第三个元素后遍历输出,但是我的运行后不能遍历输出

img


Process exited after 16 seconds with return value 3221225477

我想要达到的结果

我想测试一下代码,测试ListDelete(L,3)这块代码,删除链表中第三个元素后遍历输出

24行 == 写成了 =

我理解java的链表

楼上正解,毛病在第24行。