下面的函数能够实现在一个带头结点的递增有序的单链表中插入一个元素x,使得单链表仍然保持有序吗?该如何修改

int InsertListInOrder(LinkList L, ElemType x)
{ Node *s;

s=(Node *)malloc(sizeof(Node));
if (s==NULL) return ERROR;
s->data=x;
L=L->next;
while ( L!=NULL )
if ( x>L->data )
L=L->next;
else
{ s->next=L->next;
L->next=s;
}
return OK;
}

试试这个


int InsertListInOrder(LinkList L, ElemType x)
{ 
    Node *s;
    s=(Node *)malloc(sizeof(Node));
    if (s==NULL) return ERROR;
    s->data=x;
    LinkList p=L;
    L=L->next;
    while ( L!=NULL )
    {
        if ( x>L->data )
        {
            p=L;
            L=L->next;            
        }
        else
        {             
            s->next=p->next;
            p->next=s;
            break;
        }
    }
    return OK;
}