1.链表是什么
首先先要知道链表是什么,先看定义:
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的
也就是说,在实际存储的时候,链表是可以不连续的,只需要在逻辑上保持连续即可。(可以把它想象成火车,一节车厢连接着下一节车厢,车厢间的连接就是指针)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201208112355398.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMDgxNTE4,size_16,color_FFFFFF,t_70#pic_center)
2. 快慢指针的应用
顾名思义,快慢指针就是一快一慢的两个指针,其原理为:
如果链表中存在环,那么快慢指针进入环之后,因为存在速度差,两个指针迟早会相遇,那么只需判断两个指针的值是否相等即可,若果有相等的情况就存在环,不相等就不存在。
这里通过JavaScript实现↓
定义方式如下: