链表
(卡神小迷弟!!!)----最近攻克了二叉树,回头转战链表~~啦啦啦!!! 
1.定义:
是一种通过指针串联在一起的线性结构 ,
每一个节点由两部分 组成,一个是数据域 一个是指针域 (存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。
public class ListNode{
int val;
ListNode next;
public ListNode(){};
public ListNode(int val){
this.val=val;
}
public ListNode(int val,ListNode next){
this.val=val;
this.next=next;
}
}
2.链表的类型
单链表: 只有一个尾指针
双链表: 有头指针和尾指针
循环链表: 链表首尾相连
单链表的结构:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vBKvH1EA-1652015412130)(%E9%93%BE%E8%A1%A8.assets/20200806194529815.png)]](https://img-blog.csdnimg.cn/be1515768c7e4300a248595c1ecbb89a.png)
双链表的结构:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yAvq0WxI-1652015412131)(%E9%93%BE%E8%A1%A8.assets/20200806194559317.png)]](https://img-blog.csdnimg.cn/28426a902b19411eb840f505929d88f9.png)
循环链表的结构:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CnncOnYA-1652015412132)(%E9%93%BE%E8%A1%A8.assets/20200806194629603.png)]](https://img-blog.csdnimg.cn/46769c0b367744ce83fac85b2011bf93.png)
3.链表的存储方式
特点:逻辑地址 连续,物理地址 离散无序(没有要求,想怎么样就怎么样);通过下图的指针(小箭头)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WisO34dP-1652015412132)(%E9%93%BE%E8%A1%A8.assets/20200806194613920.png)]](https://img-blog.csdnimg.cn/689d37937b004dadb3ec6457a6cd26db.png)
4.链表的定义
单链表的定义:
public class ListNode{
int val;
ListNode next;
public ListNode(){};
public ListNode(int val){
this.val=val;
}
public ListNode(int val,ListNode next){
this.val=val;
this.next=next;
}
}
5.链表的操作:CRUD YYDS!!
删除节点:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-odaXwGxs-1652015412132)(%E9%93%BE%E8%A1%A8.assets/20200806195114541.png)]](https://img-blog.csdnimg.cn/1c639bfe1af843988a8d4dbc8a0917cf.png)
添加节点:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sm8DeoWa-1652015412133)(%E9%93%BE%E8%A1%A8.assets/20200806195134331.png)]](https://img-blog.csdnimg.cn/2b1798077fc942c392fb7ceb840eb5e3.png)
完结

|