判断一个链表是否闭环,需要判断两个指针在是否有相等的情况,我们采用内部类的方法,对链表的节点进行定义,如果有链,快指针会比慢指针提前进入链中,进入环后,快指针与慢指针终会相遇代码如下。
public class LinkO {
//定义内部类。内部类中含有下一节点的属性
class node{
node next = new node();
}
//定义头结点
private node head = new node();
public static void main(String[] args) {
LinkO l = new LinkO();
Boolean result = l.linkO(l);
}
private Boolean linkO(LinkO l) {
node slow = l.head.next;
node fast = l.head.next.next;
while(slow != null && fast != null)
{
if(slow == fast) {
return true;
}
//快慢指针后移
slow = slow.next;
fast = fast.next.next ;
}
return false;
}
}