**链表是一种物理存储单元上非连续,非顺序的存储结构。数据元素的逻辑顺序是通过链表中的指针链接次序来实现的。
首先我们要清楚线性表的顺序存储结构的缺点是每一次插入数据和删除元素,都会导致大量的元素移动,时间消耗非常大,时间效率低下。**线性表的这一特点和数组也十分相似,于是就诞生了链表。
链表,它存储结构的特点就是用一组任意的存储单元来存储线性表中的数据元素。链表在插入数据和删除数据,可以直接修改节点中的指针,无需像数组那样要移动大量数据元素。
链表本身含有数据域和指针域。数据域存储的是本身节点的数据,指针域指向的是下一个节点的位置。
n个节点形成一个链表,也为线性表的链式存储结构。节点含有一个指针域的链表称为单链表,含有两个指针域的链表称为双链表。
说一下链表和数组的性能比较
数组:插入/删除时间复杂度:O(n),查询时间复杂度O(1),适用场景:数据量固定,频繁查询,较少增删。
链表:插入/删除时间复杂度:O(1),查询时间复杂度O(n),适用场景:数据量不固定,频繁增删,较少查询。
- 链表的创建
链表的节点有一个指针域和数据域组成。
ublic class ListNode {
// 结点的值