在数组中实现链接列表

时间:2016-12-19 17:02:04

标签: linked-list time-complexity

在数组中实现链接列表

enter image description here

据我所知:

  1. 删除将在O(1)时间完成,因为我们将只移动前指针,但反向将花费O(n)时间。如果我理解错了,请纠正我。

1 个答案:

答案 0 :(得分:0)

正如你所提到的,删除可以在恒定时间内完成,带有头尾指针的双向链表可以通过交换头尾指针在O(1)时间内反转。这里P是第一个元素,最后一个指针是(第一个元素+列表大小)mod n,这意味着

  1. 第一个元素a具有指向自身和最后一个元素的指针
  2. 第二个元素a具有指向自身的指针和第一个元素之前的元素,即第一个元素
  3. 第3个元素具有指向自身和第二个元素的指针
  4. 等等,所以通过交换第一个和最后一个指针,你可以反转O(1)中的列表