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