顺序链表的插入用C语言编程实现

将一个整数插入到有序的顺序链表中,以下是我的源程序,请问哪错了啊??
#include
#include

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

LinkList CreateListR(LinkList L)
{
int n;
LinkList p,s;
p=L=(LinkList)malloc(sizeof(Lnode));
scanf("%d",&n);
for(;n>0;n--)
{
s=(LinkList)malloc(sizeof(Lnode));
scanf("%d",s->data);
p->next=s; p=s;
}
p->next=NULL;
return L;
}

LinkList ListInsert(LinkList L1)
{
int m;
LinkList s,p,L;
p=L=CreateListR(L1);
scanf("%d",&m);
while(p!=NULL)
{
if(p->data>m)
{
s=(LinkList)malloc(sizeof(Lnode));
s->data=m;
s->next=L->next; {
q=q->next;
printf("%d ",q->data);

  }
  return 0;

}

 LinkList ListInsert(LinkList L1)
{
      int m;
      LinkList s,p,L;
      p=L=CreateListR(L1);
      scanf("%d",&m);
      while(p!=NULL)
      {
            if(p->data>m)
            {
                  s=(LinkList)malloc(sizeof(Lnode));
                  s->data=m;
                  s->next=L->next;
            } //是后括号
            p=p->next; //哪里来的q,是p吧。
            printf("%d ",p->data);

      }
      return 0;
}

对对,我p和q弄混了,太谢谢了图片说明图片说明

可是还是不行诶图片说明