oj952单链表插入操作的实现,求看看哪里出问题了,无法输入。

#include
#include
typedef struct node//单链表
{
int date;
struct node *next;
}node;
typedef struct node *linklist;
void createlist(linklist *&L)//尾插法创建单链表
{
linklist p,r;
int n,i,e;
scanf("%d",&n);
*L=(linklist)malloc(sizeof(node));//L为整个线性表
r=*L;//r为指向尾部的节点
for(i=0;i
{
p=(node *)malloc(sizeof(node));//生成新节点
scanf("%d",&e);
p->date=e;
r->next=p;
r=p;
}
r->next=NULL;
}
void sertlist(linklist *&L)//插入数据
{
int i,j,e;
scanf("%d",&i);
scanf("%d",&e);
linklist p,s;
p=*L;//指向链表头结点
j=1;
while(p&&j
{
p=p->next;
j++;
}
if(!p||j>i)
printf("error\n");
s=(linklist)malloc(sizeof(node));
s->date=e;
s->next=p->next;
p->next=s;
}
void showlist(linklist *L)
{
linklist p;
p=*L;
while(p)
{
printf("%d ",p->date);
p=p->next;
}
}
int main()
{
linklist *L;
createlist(L);
sertlist(L);
showlist(L);
return 0;
}

修改处见注释,供参考:

#include <stdio.h>
#include <stdlib.h>
typedef struct node//单链表
{
    int date;
    struct node* next;
}node;
typedef struct node* linklist;
void createlist(linklist& L)//尾插法创建单链表 linklist*& L 修改
{
    linklist p, r;
    int n, i, e;
    scanf("%d", &n);
    L = (linklist)malloc(sizeof(node));//L为整个线性表 修改
    //*L = (linklist)malloc(sizeof(node)); 修改
    r = L;//r为指向尾部的节点 修改
    for (i = 0; i < n; i++)  //修改
    {
        p = (node*)malloc(sizeof(node));//生成新节点
        scanf("%d", &e);
        p->date = e;
        r->next = p;
        r = p;
    }
    r->next = NULL;
}
void sertlist(linklist& L)//插入数据  linklist*& L 修改
{
    int i, j, e;
    scanf("%d", &i);
    scanf("%d", &e);
    linklist p, s;
    p = L;//指向链表头结点 p = *L; 修改
    j = 0;//修改 j = 1; 
    while (p && j < i)
    {
        p = p->next;
        j++;
    }
    if (!p || j > i) { //修改
        printf("error\n");
        return;        //修改
    }
    s = (linklist)malloc(sizeof(node));
    s->date = e;
    s->next = p->next;
    p->next = s;
}
void showlist(linklist L) //linklist* L 修改
{
    linklist p;
    p = L->next;    //p = *L;  修改
    while (p)
    {
        printf("%d ", p->date);
        p = p->next;
    }
}
int main()
{
    linklist L;   //linklist* L; 修改
    createlist(L);
    sertlist(L);
    showlist(L);
    return 0;
}

img

无法输入是啥现象?