求助,怎样实现有序链表插入?

描述

要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。
其中单链表的结构定义如下:

typedef struct LNode   //定义单链表节点结构体

{  

     ElemType data;       //数据域

     struct LNode *next; //指向后继节点

} LinkList;

函数接口定义:

void ListInsert(LinkList *&L, ElemType e);

输入

 

三行
行1 结点个数
行2 具体的节点数据值
行3 插入结点数据值

输出

 

有序链表数据值

输入样例 1 

5
1 2 4 5 6
3

输出样例 1

1 2 3 4 5 6

 

 

求助,实在不太会这个问题,谢谢!

差不多就是这个样子吧

void ListInsert(LinkList *&L, int e){
    LinkList *pre, *tmp;
    tmp = (LinkList *)malloc(sizeof(LinkList));
    pre = (*L);
    while(pre->next != NULL){
        if(e > pre->next->data)
            pre = pre->next;
        else
            break;
    }
    tmp->data = e;
    tmp->next = pre->next;
    pre->next = tmp;
}