我似乎无法找出问题所在的最后一个节点,我的代码编译和运行过去有问题的功能,如下图所示,但是当我尝试显示所有节点的内容,我得到这个:删除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