執行結果:
通過
顯示詳情
執行用時 :0 ms, 在所有 Java 提交中擊敗了100.00% 的用戶
內存消耗 :37.5 MB, 在所有 Java 提交中擊敗了5.03%的用戶
題目:
給定一個鏈表,返回鏈表開始入環的第一個節點。 如果鏈表無環,則返回 null。
爲了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鏈表中沒有環。
說明:不允許修改給定的鏈表。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/linked-list-cycle-ii
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
思路:
快慢指針
2*(x+y)=x+2*y+z
x=z
代碼:
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode detectCycle(ListNode head) {
ListNode slow=head;
ListNode fast=head;
do
{
if(fast==null||fast.next==null)
{
return null;
}else
{
slow=slow.next;
fast=fast.next.next;
}
}while(slow!=fast);
fast=head;
while(slow!=fast)
{
fast=fast.next;
slow=slow.next;
}
return fast;
}
}