带哨兵头尾节点的双向循环链表,在表头插入节点 p ,以下四步操作无论什么顺序执行结果都正确。 # 1 p.next = head.next # 2 p.prev = head # 3 head.next.prev = p # 4 head.next = p
A:正确
B:错误
正确答案:错误
答案解析
1. 将节点p的next指针指向head的后继节点,建立p向后连接;2. 将节点p的prev指针指向head,建立p向前连接;3. 将head原后继节点的prev指针由指向head改为指向p,建立反向连接更新;4. 将head的next指针由指向原后继节点改为指向p,完成前向连接更新。四步操作分别修改不同节点的指针域,每步仅依赖当前操作前已确定的链接关系,不依赖其他步骤的执行顺序,所有指针重连完成后链表结构均能保持一致且正确。
试卷来源:202606 CCF-GESP编程能力等级认证Python五级真题