Others 给定一个带头结点的单链表,设L为头指针,结点的结构定义如下,试写一算法删除该链表中第i个结点。

Others
给定一个带头结点的单链表,设L为头指针,结点的结构定义如下,试写一算法删除该链表中第i个结点。(14分)

//单链表结点的结构

typedef struct LNode

{

 ElemType data;

 struct LNode *next;

} LinkList;

//删除单链表中第i个结点。

bool ListInsert(LinkList *&L,int i,ElemType &e)

{

//请在此处编写代码完成函数功能。


bool ListInsert(LinkList*& L, int i, ElemType& e) {
    if (i<=0||L == NULL)    
        return false;
    LinkList* now = L;
    LinkList* last=L;
    while (i--&&now!=NULL) {
        last = now;
        now = now->next;
    }
    if (now==NULL)    //i大于链表长度
        return false;
    e = now->data;
    last->next = now->next;
    free(now);
    return true;
}