请问这是哪里出了问题

//尾插法建立单链表 ,生成的链表中的次序和输入的顺序一致。所以需要一个尾指针r。
bool List_rearInsert(LinkList &L,int x){    //正向建立单链表 
    LNode *s,*r=L;   //r表示尾指针 
    while(x!=9999){
        s=(LNode*)malloc(sizeof(LNode));//创建新结点
        s->data=x;  //将x存入新结点的数据域
        s->next=r->next; 
        r->next=s; 
    }
    r->next=NULL;   //表尾结点置空 
    return true; 
} 

然后插入不成功。哭了

第一你这个是头插,第二你插完之后r->next还等于null,插了等于没插,第三这个循环没有停止条件啊。