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

别灰心,再试一次!

💡 真题解析

【答案】A

【考纲知识点】链表

【解析】双链表中删除非头尾结点p,需要将p的前驱结点和p的后继结点相连后释放p结点

p的前驱节点的next需要指向p的后继结点,p的后继结点的prev需要指向p的前驱结点

p.prev.next = p.next;p.next.prev = p.prev;

C选项 因为先执行了p->next->prev = p->prev;所以p->next->prev->next等价于p->prev->next

D选项同理