void DeleteNode(ListNode** pListHead,ListNode* pToBeDeleted){
if(!pListHead||!pToBeDeleted)
return;
if(pToBeDeleted->m_pNext!=nullptr){ //要刪除的節點不是尾節點
ListNode* pNext =pToBeDeleted->m_pNext;
pToBeDeleted->m_nValue=pNext->m_nValue;
pToBeDeleted->m_pNext=pNext->m_pNext;
delete pNext;
pNext =nullptr;
}
else if(*pListHead==pToBeDeleted){ //鏈表只有一個節點,刪除頭結點
delete pToBeDeleted;
pToBeDeleted = nullptr;
*pListHead=nullptr;
}
else{ //鏈表有多個節點,刪除尾節點
ListNode* pNode = *pListHead;
while(pNode->m_pNext!=pToBeDeleted)
pNode = pNode->m_pNext;
pNode->m_pNext=nullptr;
delete pToBeDeleted;
pToBeDeleted = nullptr;
}
}List