链表中的高效“插入”功能

时间:2012-12-06 08:52:05

标签: c++ c data-structures linked-list

在一次采访中,我被要求为链表编写一个插入函数,插入后,插入元素朝向头侧的元素应该更大,并且与插入元素相比,尾侧应该更小元件。

我在代码中实现了以下步骤:

  1. 最初按降序对链接列表进行排序。
  2. 获取元素。
  3. 插入元素,即使在插入后链接列表也将按降序排列。
  4. 但我被告知我的方式效率不高。

    如果有有效的方法可以让我知道。

1 个答案:

答案 0 :(得分:1)

排序是O(n log n)操作。如果您仔细阅读问题,他们永远不会说列表应该排序,所以不要进行排序操作。你应该做的是从一个只有你的元素的新列表开始,然后对于原始列表的每个元素将它附加到前面(如果大于新元素)或者在后面附加。