由于某种原因,我从列表中间删除节点的功能是删除第一个节点,而不是用户指定的节点。这里是我的功能:C++从列表中部删除节点
template< class NODETYPE >
bool List<NODETYPE>::removeMiddle(NODETYPE &value, int i)
{
ListNode <NODETYPE> * tempPtr = firstPtr;
int counter=1;
if (isEmpty())
return false;
if (i <= 0)
return false;
while (tempPtr != 0 && counter < i){
counter++;
if (firstPtr == lastPtr)
firstPtr = lastPtr = 0;
else
firstPtr = firstPtr->nextPtr;
if (counter == i){
value = tempPtr->data; // data being removed
delete tempPtr;
}
}
return true;
RecordCounter--;
}
任何人都可以帮助指向正确的方向吗?
谢谢,我不能相信我错过了。我现在可以通过列表正确迭代,但由于某种原因,我的代码并未删除特定的节点。 – 2012-07-30 01:50:43