基本理论
和数组不同的是,链表是通过指针串联在一起的一种数据结构,所以链表一般包含两个部分:指针域和数据域。指针域指向链表下一个节点,数据与存放数据。一般来说,如果链表有头节点,头节点不存放数据。常用的链表类型有单链表、双链表、循环链表。单链表的示意图如图所示,双链表就是比单链表多一条往回的线,循环链表就是尾节点指向头节点:
由于链表使用指针进行索引,所以在内存中的不是连续存放的,分配机制取决于你的操作系统内存管理机制。常见链表的操作是增加、删除、查找、打印等,由于是链式存储,所以增加和删除不用大规模移动元素,但是在查找的时候时间复杂度比较高。常考的点是基本操作、反转链表、判断是否有环等等。