/*在O(1)複雜度內刪除指定節點*/ void deleteNode(LinkNode *& pHead, LinkNode * pDelNode) { if(pHead == NULL) cout<<"鏈表爲空\n"; if(pDelNode == NULL) cout<<"所刪除節點不存在\n"; if (pDelNode != pHead && pDelNode->_next != NULL)///中間節點 { LinkNode * pTemp = pDelNode->_next; pDelNode->_value = pDelNode->_next->_value; pDelNode->_next = pDelNode->_next->_next; delete pTemp; pTemp = 0; } else if (pDelNode == pHead)////被刪除的是頭結點 { pHead = pDelNode->_next; delete pDelNode; } else if(pDelNode->_next == NULL) { LinkNode * pTemp = pHead; while(pTemp->_next != pDelNode) pTemp = pTemp->_next; pTemp->_next = NULL; delete pDelNode; } }