链表:一组数据项的集合,其中每个数据项都是一个节点的一部分,每个节点还包含指向下一个节点的链接
链表的数据结构:

而对于其中每一个节点:

每一个节点有两个域,左边叫值域,用于存放用户数据,右边叫指针域,一般是存储着到下一个节点的指针
head节点:
头节点,特殊的一个节点,永远指向第一个节点
tail节点:
尾节点,也是特殊的一个节点,永远指向最后一个节点。tail.next = None
而由abcd四个节点组成了一个链表,每一个节点都有data和next,尾节点的next指向None
链表中的元素都会有两个属性,一个是元素的值,另一个是指针,指针标记了下一个元素的地址,每一个数据都会保存下一个数据的内存的地址,通过此地址可以找到下一个数据,任意位置插入和删除元素效率较高,时间复杂度为O(1)
需要访问某个位置的数据,需要从第一个数据开始找起,依次往后遍历,直到找到待查询的位置,故可能在查找某个元素时,时间复杂度为O(N)
优点: