0%

linked-list-cycle

题目描述

给定一个链表,判断链表中是否有环。你能用 O(1)(即,常量)内存解决此问题吗?

题解

用快慢指针的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool hasCycle(ListNode *head) {
if (!head||!head->next)return false;
ListNode *t1 = head, *t2 = head->next;
while (t1 && t2&&t1!=t2)
{
t1 = t1->next;
t2 = t2->next;
if (t2)
t2 = t2->next;
else
return false;
}
if (!t2)
return false;
return true;
}