双向链表中每个结点有两个指针域 prev 和 next,分别指向该结点的前驱及后继结点。设 p 指向链表中的一个结点,它的前驱结点和后继结点均非空。要删除结点 p,则下述语句中错误的是( )。
- A. ```cpp
p->next->prev = p->next;
p->prev->next = p->prev;
delete p;
- **B.** ```cpp
p->prev->next = p->next;
p->next->prev = p->prev;
delete p;
- C. ```cpp
p->next->prev = p->prev;
p->next->prev->next = p->next;
delete p;
- **D.** ```cpp
p->prev->next = p->next;
p->prev->next->prev = p->prev;
delete p;