在dev上跟着视频敲链表代码结果输出异常:
代码:
#include<bits/stdc++.h>
using namespace std;
//结构体
typedef struct lnode{
int data;
struct lnode *next;
}lnode,*linklist;
int a[4] = {1,2,3,4};
int n = 4;
//创建链表
void buildlist(linklist &L){
L = (linklist)malloc(sizeof(lnode));
lnode *s,*r = L;
for(int i = 0;i<n;i++){
s = (lnode *)malloc(sizeof(lnode));
s->data = a[i];
r->next = s;
r = r->next;
}
}
//打印链表
void disp(linklist L){
lnode *s = L->next;
while(s){
cout << s->data << " ";
s = s->next;
}
cout << endl;
}
//删除目标元素节点
void deletex(linklist &L,int x){
lnode *p = L->next,*q,*r = L;
while(p){
if(p->data!=x){
r->next = p;
r = p;
p = p->next;
}
else {
q = p;
p = p->next;
free(q);
}
}
}
int main(){
linklist L;
buildlist(L);
disp(L);
deletex(L,2);//删除值为2的节点。
disp(L);
return 0;
}
无报错。
求解答。