こんにちは、リンクされたリストのノードを削除しようとしています。私は最初に頭と尾のノードを削除する方法を実験しています。頭の削除は機能しているように見えますが、尾の削除は機能していません。コードを実行すると、末尾があった場所がガベージ値に置き換えられます。誰でも理由を理解できますか?どうもありがとう!
void CList :: Remove() {
int data = NULL;
std::cout<<"Enter value you wish to remove ";
std:: cin>> data;
cNode *pMyPointer = m_pHead;
while (pMyPointer != NULL)
{
if (pMyPointer->m_nValue == data) {
std::cout << "Element found";
goto del;
}
else {
pMyPointer = pMyPointer->m_pNext;
}
}
del:
//removing the head
if (pMyPointer == m_pHead)
m_pHead= m_pHead->m_pNext;
//removing the tail
else if (pMyPointer == m_pTail)
m_pTail = m_pTail->m_pPrev;
delete pMyPointer;
}