【2021链表面试题】环形链表(验证是否有环)

题目描述

在这里插入图片描述
在这里插入图片描述

分析

我们可以定义两个指针 一个快 一个慢
然后遍历这个链表 如果存在环 因为一个慢一个快 必定会相遇
即两个指针指向同一个节点

public class Solution {
    public boolean hasCycle(ListNode head) {
       if(head == null){
           return false;
       }
       ListNode p1 = head;
       ListNode p2 = head;
       while(p2.next != null && p2.next.next != null){
           p1 = p1.next;
           p2 = p2.next.next;
           if(p1 == p2){
               return true;
           }
       }
       return false;
    }
}

猜你喜欢

转载自blog.csdn.net/NuanShuTT/article/details/108345468