链表删除节点时,我老是算不对迭代
void Delete(struct Student* pHead,int iIndex){
int i;
struct Student* pTemp;
struct Student* pPre;
pTemp=pHead;
pPre=pTemp;
printf("----delete NO%d member----\n",iIndex);
for(i=1;i<iIndex;i++)
{
pPre=pTemp; //循环一:pRre与pTemp同样是头指针,也能指向首节点,循环二:pPre将获取pTemp第二节点首地址
pTemp=pTemp->pNext; //循环一:pTemp获取第二节点首地址,循环二:pTemp获取第三节点首地址,此时结束for
}
pPre->pNext=pTemp->pNext; //此时pPre是第二节点,而pPre->pNext就是第二节点的指针变量获取第四节点的首地址,所以我理解是被删除的是第三节点,但是实际为什么是第二个节点被删除了呢
free(pTemp);
iCount--;
}
[此贴子已经被作者于2016-7-14 21:07编辑过]