我们可以在小于 O(n) 的时间内反转链表吗?
看起来不可能在小于 O(n) 的时间内反转一个简单的单链表。一个简单的单链表只能使用递归和迭代方法在 O(n) 时间内反转。
具有头指针和尾指针的内存高效双向链表也可以通过交换头指针和尾指针在 O(1) 时间内反转。
带有头指针和尾指针的双向链表也可以通过交换头指针和尾指针在 O(1) 时间内反转,但是我们必须使用 prev 指针正向遍历列表,使用 next 指针反向遍历列表,这可能不是认为有效。
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。