文章目录
- 链表
- 单链表
- 双向链表
- 循环链表
- 链表的底层结构
- 链表的实现代码
链表
链表分为单链表,双向链表,循环链表。
单链表
如上图所示,链表是由多个节点组成,节点由数据域与指针域组成,数据域用于存储数据,指针域指着下一个节点,其中第一个节点为头节点,倒数第二个节点的指针域指向空指针。
双向链表
双向链表想较与单链表,多了一个prev指针域,用于指向前一个节点。
循环链表
循环链表也就是一个闭环,没有头指针的存在。
链表的底层结构
链表的底层内存不是连续的内存空间,是分散的内存块,一个块的指针连着下一个块。
链表的查询的性能较慢,每一次查询都需要从头指针出发,一个节点连着下一个节点,而增删改的时候只需要修改一个节点的指针
链表与数组的差异
查询性能 | 增删改性能 | 适用 | |
---|---|---|---|
数组 | O(1) | O(N) | 频繁查询,少量增删改 |
链表 | O(N) | O(1) | 频繁增删改,少量查询 |
链表的实现代码
public class ListNode{
private int value;
private ListNode next;
public ListNode(int value){
this.value = value;
}
public ListNode(){
}
public ListNode(int value,ListNode next){
this.value = value;
this.next = next;
}
}
我是小辉,24 届毕业生。当下是找工作ing,欢迎关注,持续分享。