在 C# 的 O(1) 中扩展列表 (AddRange)



我正在尝试在 C# 中找到一个解决方案来扩展O(1)中的列表。

List的AddRange()方法当然是一个O(n)操作。 这应该是 LinkedList 支持的东西,但 LinkedList 没有像AddRangeLast()这样的方法,并且尝试像这样组合 LinkedLists:

LinkedList<int> l1 = new LinkedList<int>(new[] { 1, 2, 3 });
LinkedList<int> l2 = new LinkedList<int>(new[] { 11, 12, 13 });
l1.AddLast(l1.First);

引发此异常:

System.InvalidOperationException: 'LinkedList 节点已属于 到链接列表。

有谁知道一种无需自己实现 LinkedList 和 LinkedListNode 即可将列表添加到O(1)中列表的方法?

不,这在System.Collections.Generic.LinkedList中是不可能的。从文档中:

类不支持链接、拆分、循环或其他可能使列表处于不一致状态的功能。

对于一个几乎相同的问题,有一个更深入的答案 如何在 C# 中将 LinkedList 添加到 LinkedList?。

相关内容

  • 没有找到相关文章