当前位置: 代码迷 >> 综合 >> 判断是否环形链表(hashset 双指针)
  详细解决方案

判断是否环形链表(hashset 双指针)

热度:100   发布时间:2023-11-29 11:04:25.0

在这里插入图片描述

  1. hashset解法
public class Solution {public boolean hasCycle(ListNode head) {Set<ListNode> seen = new HashSet<ListNode>();while (head != null) {if (!seen.add(head)) { //如果表里不是空的就会返回falsereturn true;}head = head.next;}return false;}
}
  1. 快慢指针解法
 public boolean hasCycle(ListNode head) {if(head==null||head.next==null) return false;ListNode sl = head;ListNode ft = head.next;while(sl!=ft){if(sl==null||ft==null||ft.next==null) return false; //只要有null就不是环形 而且下面会报空指针sl = sl.next;ft = ft.next.next;}return true;}

如果有环 那么快指针一定能追上慢指针

  相关解决方案