基本概念
本质:一种存储结构
组成:由节点组成,节点本身指自身存储地址,它包含2个属性,存储数据和下一节点(下一节点地址)。*也就是说节点有个属性是节点,但不是它自己,而是其他节点,具体来说是下个节点。
特点:不必按顺序存储,插入时时间节点为可达到O(1),但查找操作时间复杂度为O(n)。
*线性表时间复杂度O(logn),顺序表时间复杂度O(1)。
分类
方向性:单向/双向
头:带头/不带头
循环性:循环/非循环
结构
head(第一个节点地址) 节点(当前节点地址,有2个属性,存储数据和下一节点地址).... 节点(最后节点,与前面节点相同,特别指出是下一节点地址为空null)
代码实现链表
1.创建节点
思路:定义一个节点类;类中定义一个构造函数。调用构造函数即可创建新节点。
类属性:2个。数值,下一节点。
class ListNode{//不注明访问限制修饰符默认为default,包内可访问
public int val;
public ListNode next;
public ListNode(int data){
this.val=data;
}
}
2.创建链表
(1