我似乎無法找出問題所在的最後一個節點,我的代碼編譯和運行過去有問題的功能,如下圖所示,但是當我嘗試顯示所有節點的內容,我得到這個:刪除C++中的鏈表
LinkedList.exe中的0x50CE1F98(msvcp100d.dll)未處理的異常:0xC0000005:訪問衝突讀取位置0xFEEEFEEE。
//remove (and cleanup after) the node at the tail of the LinkedList (pHead)
//return a pointer to the head node
ListNode* removeEnd(ListNode* pHead)
{
ListNode* pCurr = pHead;
ListNode* pPrevPtr = NULL;
while (pCurr->pNextNode != NULL)
{
pCurr = pCurr->pNextNode;
pPrevPtr = pCurr->pNextNode;
}
pPrevPtr = NULL;
delete pCurr;
return pHead;
}
爲什麼取消鏈接? OP只想刪除最後一個,沒有提到關於解除鏈接 – 4pie0
@lizusek他們很可能忘記提到這個 – martynas
@lizusek爲什麼你會刪除節點,然後在列表中留下一個指向它的指針?這是非常麻煩的問題,我對你的評論感到驚訝。 – paddy