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