双链表结点定义如下,若要删除双链表中的中间结点(非首尾节点)p,下面写法正确的是( )。
struct Node {
int val;
Node* prev;
Node* next;
};
- A. ```cpp
p->prev->next = p->next;
p->next->prev = p->prev;
delete p;
- **B.** ```cpp
p->next->prev = p->next;
p->prev->next = p->prev;
delete p;
- C. ```cpp
p->prev = p->next;
p->next = p->prev;
delete p;
- **D.** ```cpp
p->next->next = p->prev;
p->prev->prev = p->next;
delete p;