所以我在夏天的OO类中,我们需要编写一个函数来从链表中删除一个节点。我非常接近,但有几个问题。我的代码成功地遍历链表,但是一旦循环找到节点,实际上就会删除节点。这是我目前的功能:C++从列表中间删除节点
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--;
}
有什么问题,具体是?你能描述一下这个问题吗? – 2012-07-30 02:15:42
请修复缩进 – 2012-07-30 02:19:24
另外,为宏保留大声的大写标识是一个不错的主意。 – 2012-07-30 02:29:49