下面关于单链表和双链表的描述中,正确的是( )。struct DNode { int data; DNode* prev; DNode* next; }; // 在双链表中删除指定节点 void deleteNode(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)
正确答案:C
试卷来源:202512 CCF-GESP编程能力等级认证C++五级真题