C# LinkedList<T>

类似 Java 的 LinkedList<T>,底层使用双向链表。

构造函数

  • LinkedList<T>():默认初始化。
  • LinkedList<T>(IEnumerable<T>):复制某集合进行初始化。

属性

  • Count:获取列表中节点的个数,内部进行计数维护,时间复杂度为 O(1)
  • First:获取列表的第一个节点。
  • Last:获取列表的最后一个节点。

方法

  • AddFirst(T):在列表中的开头处添加指定值的新节点。
  • AddLast(T):在列表中的结尾处添加指定值的新节点。
  • AddBefore(LinkedListNode<T>, T):在列表中指定现有节点前添加指定值的新节点。
  • AddAfter(LinkedListNode<T>, T):在列表中指定现有节点后添加指定值的新节点。
  • RemoveFirst():移除位于列表开头处的节点。
  • RemoveLast():移除位于列表结尾处的节点。
  • Remove(LinkedListNode<T>):移除指定的节点。

以上增删操作不包含定位节点,不需要移动列表中的其他节点,时间复杂度皆为 O(1)。

  • Find(T):查找包含指定值的第一个节点。
  • FindLast(T):查找包含指定值的最后一个节点。
  • Contains(T):确定某值是否在列表中。
  • Remove(T):移除指定的值的第一个匹配的节点。

以上操作直接或间接地定位节点,需要遍历列表,时间复杂度为 O(n)。

posted @ 2025-08-19 22:01  Varc  阅读(6)  评论(0)    收藏  举报