删除结点的逆置是为了什么?逆置过程中为什么要将currentNode赋给currentNodeBefore?
为什么要将currentNode赋给currentNodeBefore
为什么要将currentNode赋给currentNodeBefore
2017-03-24
bool List::ListDelete(int i,Node *pNode)
{
if(i<0 || i>=m_iLength)
return false;
Node *currentNode=m_pList; //保存头节点
Node *currentNodeBefore=NULL; //头节点前一个节点不存在,为NULL
for(int k=0;k<=i;k++) //查找第i个节点
{
currentNodeBefore=currentNode; //找到第i-1个节点
currentNode=currentNode->next; //循环结束代表currentNode就是第i节点
}
currentNodeBefore->next=currentNode->next;//第i个节点指针域赋给第i-1节点指针域
pNode->data=currentNode->data; //删掉节点的数据域赋给pNode输出
delete currentNode; //释放删除节点的内存
currentNode=NULL;
m_iLength--; //节点长度减1
return true;
}
举报