[LeetCode]No.141 Linked List Cycle
1031 ワード
リンク:https://leetcode.com/problems/linked-list-cycle/原題:Given a linked list,determine if it has a cycle in it.
Follow up: Can you solve it without using extra space?
分析:この问题の意味は别のメモリ空间を开かないで循环のチェーンテーブルかどうかを判断することですここでは2つのカーソルを使って比较して、1つは1つのジャンプの2つのノードで、1つは1回のジャンプの1つのノードで、もし循环のチェーンテーブルならば、2つのカーソルはきっと重合する时があります
Follow up: Can you solve it without using extra space?
分析:この问题の意味は别のメモリ空间を开かないで循环のチェーンテーブルかどうかを判断することですここでは2つのカーソルを使って比较して、1つは1つのジャンプの2つのノードで、1つは1回のジャンプの1つのノードで、もし循环のチェーンテーブルならば、2つのカーソルはきっと重合する时があります
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
ListNode fast = head;
ListNode slow = head;
while (true) {
if(fast == null || slow== null) {
return false;
}
fast = fast.next;
if(slow.next!=null) {
slow = slow.next.next;
} else {
return false;
}
if(fast == slow) {
return true;
}
}
}
}