链表

链表

May 28, 2022
data-structure

Singly linked list #

单链表

时间复杂度 #

Access Search Insertion Deletion
O(n) O(n) O(1) O(n)

注: 插入操作仅为在给定节点 Node 的指针 P 的前提下,在其后面插入一个节点,此时复杂度为 O(1),若在 P 前面插入一个节点,则复杂度为 O(n), 因为需要遍历

Doubly linked list #

双链表

优点: #

  • 可以双向遍历
  • 删除操作更高效(O(1)),在已知给定节点的指针的前提下
  • 插入操作 (O(1))

缺点: #

  • 额外的空间开销,用来存指针
  • 所有操作需要维持两个指针的指向

时间复杂度 #

Access Search Insertion Deletion
O(n) O(n) O(1) O(n) / O(1)

注:如果需要遍历节点,则删除的时间复杂度为 O(n)