由於某種原因,我從列表中間刪除節點的功能是刪除第一個節點,而不是用戶指定的節點。這裏是我的功能: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