要删除单链表中某个结点 p(非尾结点),但不知道头结点,可行的操作是将 p->next 的数据拷贝到 p 的数据部分,将 p->next 设置为 p->next->next,然后删除 p->next。
链表分为单向/双向/循环链表,插入删除O(1),但查找O(n)。注意指针操作的顺序,防止断链。
链表操作要特别注意指针修改的顺序。例如在节点前插入时,先新节点→next = 当前→next,再当前→next = 新节点。顺序颠倒会导致断链。
【考点】单链表指针操作|结点删除技巧|C++引用与拷贝
GESP五级C++进阶算法模块,考察指针操作与链表基本操作。命题人卡住的是绝大多数考生的一个致命弱点:链表删除通常要求从头遍历找到目标结点,但这里只给了目标结点指针——这是五级特有的"反套路"设计,专门测试是否理解指针的本质。