第20657题
下面关于单链表和双链表删除指定节点的时间复杂度描述中,正确的是( )
struct DNode {
    int data;
    DNode* prev;
    DNode* next;
};

// 在双链表中删除指定节点
void deleteDNode(DNode* node) {
    if (node->prev) {
        node->prev->next = node->next;
    }
    if (node->next) {
        node->next->prev = node->prev;
    }
    delete node;
}

struct SNode {
    int data;
    SNode* next;
};

// 在单链表中删除指定节点
void deleteSNode(SNode* head, SNode* node) {
    SNode* prev = head;
    while (prev->next != node) {
        prev = prev->next;
    }
    prev->next = node->next;
    delete node;
}
A

双链表删除指定节点是 O(1),单链表是 O(1)

B

双链表删除指定节点是 O(n),单链表是 O(1)

C

双链表删除指定节点是 O(1),单链表是 O(n)

D

双链表删除指定节点是 O(n),单链表是 O(n)

提交0次 正确率0.00%
答案解析