给定一个链表,判断链表中是否有环。
进阶:
你能否不使用额外空间解决此题?
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public bool HasCycle(ListNode head) { ListNode p1 = head; ListNode p2 = head; //一个快指针和一个慢指针,如果有环,这两指针就会相遇 //如果无环,快指针就会跳出循环了 while(p1 != null && p1.next != null) { p1 = p1.next.next; p2 = p2.next; if(p2 == p1) { return true; } } return false; } }