void DeleteNode(ListNode** pHead, ListNode* pDelete)
{
if (!pHead || !pDelete)
return;
if (pDelete->pNext != NULL)
{
ListNode* next = pDelete->pNext;
pDelete->nValue = next->nValue;
pDelete->pNext = next->pNext;
delete next;
next = NULL;
}
else if (*pHead == pDelete)
{
delete pDelete;
pDelete = NULL;
*pHead = NULL;
}
else
{
ListNode* node = *pHead;
while (node != pDelete)
{
node = node->pNext;
}
node->pNext = NULL;
delete pDelete;
pDelete = NULL;
}
}
O(1)时间删除单链表节点
最新推荐文章于 2020-04-29 19:02:49 发布