链表
单向链表
链表的头结点的数据域不存储数据,指针域指向第一个真正存储数据的结点。
链表的入口是头结点,主要是用来找到这条链表。
Java中使用LinkedList来进行链表的操作
LinkedList是通过双向链表实现的,而双向链表就是通过Node类来体现的,类中通过item变量保存了当前节点的值,通过next变量指向下一个节点,通过prev变量指向上一个节点。
LinkedList的用法
1、定义一个LinkedList
2、LinkedList常用方法
双向链表
链表反转
快慢指针
中间值问题
得到一个链表的中间值。通过快慢指针来实现链表中间值的查找。
当 fast 把链表走完的时候 ,slow 刚好把链表走了一半,即是中间结点所在的地方。
单向链表是否有环问题
相遇之后就证明 是有环的。
有环链表入口问题
如果我们知道单向链表有环了,那么我们如何去找到环的入口呢?
循环链表
构建循环链表,让最后一个结点指向第一个结点。
约瑟夫问题