单链表的插入问题插入后仍然有序

img

img

img


这个程序哪里有问题啊,无法实现在头结点和尾结点插入啊

供参考:

SingleLinkedList *ListInsert(SingleLinkedList *L,ElemType x)
{
    SingleLinkedList *p=L,*q,*pre=NULL;
    q=(SingleLinkedList *)malloc(sizeof(SingleLinkedList));
    if (q == NULL)  exit(1);
    q->data = x;
    q->next = NULL;
    while(p && p->data < x)
    {
         pre = p;
         p = p->next;
    }
    if(p == L)
    {
         q->next = L;
         L = q;
    }
    else{
          q->next  = pre->next;
          pre->next= q;
    }
    return L;
}