链表是一种常见的数据结构,无论是实际应用还是面试中,出现的频率都比较高,链表适宜存储关系不固定的数据,属于动态存储,区别于数组结构的静态存储。本篇小博主要围绕三个常见的链表问题进行分析。
一、建立一个自己的链表结构
class node {
<span style="white-space:pre"> </span>int data;
node next;
public node(int data) {
this.data = data;
}
}
二
、判断链表是否存在环
思路:设置两个指针,一快一慢(目前市场上貌似都是这种解法),如果快指针能和慢指针重合,则说明链表存在环。代码如下:
public static boolean IsLoop(node head) {
node p = head;
node q = head.next;
while(p != q && q != null) {
p = p.next;
q = q.next.nex