#3372. [GESP202403 五级 C++] 第 4 题

[GESP202403 五级 C++] 第 4 题

下面的代码片段用于在双向链表中删除一个节点。请在横线处填入( ),使其能正确实现相应功能。

void deleteNode(DoublyListNode*& head, int value) {
    DoublyListNode* current = head;
    while (current != nullptr && current->val != value) {
        current = current->next;
    }
    if (current != nullptr) {
        if (current->prev != nullptr) {
            ____________________________________ // 在此处填入代码
        } else {
            head = current->next;
        }
        if (current->next != nullptr) {
            current->next->prev = current->prev;
        }
        delete current;
    }
}

{{ select(1) }}

  • if (current->next != nullptr) current->next->prev = current->prev;
  • current->prev->next = current->next;
  • delete current->next;
  • current->prev = current->next;