だから私は夏のOOクラスにいて、リンクリストの途中からノードを削除する関数を書く必要があります。私は本当に近いですが、いくつかの問題があります。私のコードはリンクリストを正常に反復しますが、ループがノードを見つけた後、実際にノードを削除するのに問題があります。これまでの私の機能は次のとおりです。
template< class NODETYPE >
bool List< NODETYPE >::removeMiddle( NODETYPE &value, int i )
{
ListNode <NODETYPE> * tempPtr = firstPtr;
ListNode <NODETYPE> * prevPtr ;
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;
prevPtr = tempPtr;
tempPtr = tempPtr->nextPtr;
}
if (counter == i){
value = tempPtr->data; // data being removed
delete tempPtr;
}
}
return true;
RecordCounter--;
}