鏈表的刪除(已知被刪除結點)
在刪除鏈表點的時候,通常使用遍歷找到被刪除結點的前一個結點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;
}
};
直接覆蓋即可,當然不能是尾結點,要不然就會是空指針異常