我有一个问题:给你一个单链表 L,其中 L 中的每个节点都存储一个整数键,以及指向 L 中下一个节点的指针。最后一个节点的下一个节点设置为 NULL。给你一个指针 ptr 指向存储键 k 的节点,它不是列表中的最后一个节点。显示如何从列表中删除键 k 给定 ptr 指向包含 k 的节点的指针;您的算法应该具有时间复杂度 O(1),即它应该与列表的长度无关。假设你有指向 L 的头和尾节点的指针。
我知道如果我们有一个双向链表,我们可以在 O(1) 时间复杂度内删除节点,但是我们如何在单链表中做到这一点?我们不是必须遍历所有列表才能找到它之前的节点吗?