typedef struct LNode{
//定义节点
int data;
struct LNode *next;
}LNode;
void Print(LNode *L){
//打印节点
LNode *q = L;
while(q != NULL){
q = q -> next;
printf("%d ", q -> data);
}
printf("\n");
}
LNode * CreateList(int n){
//尾插法创建单链表
LNode *L, *s, *tail;
L = (LNode *)malloc(sizeof(LNode));
L -> next = NULL;
tail = L;
for(int i = 0; i < n; i++){
s = (LNode *)malloc(sizeof(LNode));
s -> data = i + 1;
s -> next = NULL;
s -> next = tail -> next;
tail -> next = s;
tail = s;
}
Print(L);
return L;
}
上述代码运行会提示 Segmentation fault: 11 的错误,对于此类错误,有博主有详细解释,参见下面链接。
https://blog.csdn.net/u010150046/article/details/77775114
这里我简单说明本代码错误原因:错误使用了空指针。