首先我们给出函数代码
void pListDelete(pList *p) //p为非尾节点
{
assert(p&&p->next);//确定边界
pList pCur = p->next;
p->data = pCur->data;//把p->next的值域赋值给p的值域
p->next = pCur->next;
pCur->next = NULL;
free(pCur);//删除p的下一个节点
}
图解:
pList pCur = p->next;
p->data = pCur->data;//把p->next的值域赋值给p的值域
p->next = pCur->next;
free(pCur);//删除p的下一个节点