Linked list
链表时数据元素的线性集合,其每个元素都指向下一个元素,元素存储上并不连续
数组的元素是连续的,链表并不连续
可以分类为
单向链表:每个元素只知道下一个元素
双向链表:每个元素知道上一个元素和下一个元素
循环链表:通常的链表尾节点tail指向的都是null,而循环列表的tail指向的是头节点head
链表每一个元素都叫节点,
哨兵节点:通常用作头尾,不存储数据
性能:
随机访问:根据index查找,时间复杂度O(n)
插入或删除:
起始位置:O(1)
结束位置:已知tail尾节点是O(1),不知道为O(n)
中间位置:根据index查找时间+O(1)