数据结构-单链表头插法

有没有兄弟帮我看看这一段数据结构的代码到底哪里出现了问题
完整代码如下:
#include 

typedef struct LNode
{
    int data;
    struct LNode* next;
}LNode, * LinkList;

LinkList Input(LinkList& L)     //头插法
{
    LNode* s; int x=0;
    L = (LinkList)malloc(sizeof(LNode));
    L->next = NULL;
    printf("进入程序");
    scanf("请输入数:%d", &x);
    while (x != 9999) {
        s = (LNode*)malloc(sizeof(LNode));
        s->data = x;
        s->next = L->next;
        L->next = s;
        scanf("请输入数:%d", &x);
    }
    return L;
}
void printList(LNode *L)
{
    LNode* p;
    p = L->next;
    while (p) {
        printf("%d", p->data);
        p = p->next;
    }
}

int main()
{
    LinkList L1, L2;
    Input(L1);
    Input(L2);
    printList(L1);
    printList(L2);
}
运行结果及报错内容

运行了之后就一直没什么反应,只能输出 进入程序四个字之后没有下文

我想达到的效果

链表单纯的初始化之后进行头插法然后看得到插入之后的链表数据,希望各位解答!

scanf("请输入数:%d", &x);
改成
scanf("%d", &x);
scanf中不要加乱七八糟的提示信息