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;
}
}