Given a linked list, determine if it has a cycle in it.
本人的code:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
bool hasCycle(struct ListNode *head) {
struct ListNode *p;
if(head==NULL)
return false;
p=head;
while(p){
p=p->next;
if(p==head)
return true;
}
return false;
}
显示这个怎么解决?
本人的code:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
bool hasCycle(struct ListNode *head) {
struct ListNode *p;
if(head==NULL)
return false;
p=head;
while(p){
p=p->next;
if(p==head)
return true;
}
return false;
}
显示这个怎么解决?
解决方案
5
这题标准解法是快慢指针。
15
你的循环访问的节点顺序为0123123123…死循环,解法2楼正解