在不带哨兵结点的双向链表中,结点 p 既不是头结点也不是尾结点。删除 p 的正确代码是( )。
struct Node {
int value;
Node *prev;
Node *next;
};
- A. ```cpp
p->prev = p->next;
p->next = p->prev;
delete p;
- **B.** ```cpp
p->prev->next = p;
p->next->prev = p;
delete p;
- C. ```cpp
p->prev->next = p->next;
p->next->prev = p->prev;
delete p;
- **D.** ```cpp
p->next = p->prev;
p->prev->next = nullptr;
delete p;