單鏈表的刪除(已知被刪除結點)

鏈表的刪除(已知被刪除結點)

在刪除鏈表點的時候,通常使用遍歷找到被刪除結點的前一個結點pPrev,指向被刪除結點的下一個結點 pPrev->next = pCurrent->next。然後delete pCurrent即可;
但是若僅僅知道被刪除結點,而不知到頭結點的信息,該怎麼做?

struct ListNode {
 int val;
 ListNode *next;
 ListNode(int x) : val(x), next(NULL){}//構造函數
 };
 
 class Solution {
 public:
  void deleteNode(ListNode* node) {
   node->val = node->next->val;
   node->next = node->next->next;
  }
 };

直接覆蓋即可,當然不能是尾結點,要不然就會是空指針異常

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章