给定一个带头结点的单链表,设L为头指针,结点的结构定义如下,试写一算法删除该链表中第i个结点。
{//单链表结点的结构
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)
return false;
LinkList *p = L;
while(p->next != NULL)
{
i--;
if(i==0)
{
q = p->next->data;
LinkList *q = p->next;
p->next = p->next->next;
free(q);
return true;
}
p = p->next;
}
return false;
}