是时候找到链接列表中的最大元素了

时间:2013-12-31 18:23:20

标签: search data-structures linked-list time-complexity

我有一个有序的链表。我想知道在两种情况下找到max元素的时间:

  • 如果我保持指向链表末尾的尾指针,
  • 如果我不这样做。

1 个答案:

答案 0 :(得分:11)

对于有序链表:

  • O(1)如果列表从max到min排序,因为第一个列表已经是最大值。

  • O(n)如果列表从最小值到最大值排序,如果您还有尾指针,它将变为O(1)。原因是max元素是链表中的最后一个元素。因此,您必须遍历尾部(O(n))。另一方面,当你有尾指针时,这将是O(1),你只需返回尾指针指向的内容。

对于未排序的链接列表:

  • 无论您是否有尾指针,始终O(n)。原因是,对于无序排列的列表,您必须遍历(O(n))每个列表以确定哪一个是最大值。即使使用尾指针也无济于事。