链表的定义:

wiki 百科给出定义:

In computer science, a linked list is a linear collection of data elemetns whose order is not given by their physical placement in memory. Instead, each element points to the next.

翻译一下:

  • 一个线性表
  • 每个元素会指向下一个元素的位置

链表的优缺点

优点:

  • 不需要提前分配内存
  • 在查找到元素位置的提前下,插入和删除动作是一个常量,即 O(1)
  • 没有容量上限,可以自由扩容

缺点:

  • 查询某个元素,需要从头开始遍历,即 O(n)

实现代码

单向链表

最普通的链表

双向链表

循环链表