#3571. [GESP202603 五级 C++] 第 3 题

[GESP202603 五级 C++] 第 3 题

下面函数用"哑结点"统一处理删除单向链表中的头结点与中间结点。横线处应填( )。

struct Node{
    int val;
    Node* next;
    Node(int v):val(v),next(nullptr){}
};

Node* eraseAll(Node* head, int x){
    Node dummy(0);
    dummy.next = head;
    Node* cur = &dummy;
    while(cur->next){
        if(cur->next->val == x){
            Node* del = cur->next;
            ______________________
            delete del;
        }else cur = cur->next;
    }
    return dummy.next;
}

{{ select(1) }}

  • cur = cur->next;
  • cur->next = del->next;
  • del->next = cur->next;
  • cur->next = nullptr;