您的位置:首页 > 其它

Linked List Cycle

2014-02-25 19:59 232 查看
Given a linked list, determine if it has a cycle in it.

Follow up:

Can you solve it without using extra space?

题意:给定一个链表,判断是否有环

由于这题出现的频率太高,我也不小心很早就看过它的做法,SO,直接贴代码吧!

PS:对于链表关键要考虑它的健壮性,异常情况有:空链表、单节点、空指针的情况

struct ListNode{
int val;
ListNode *next;
};

bool hasCycle(ListNode *head) {
bool flag = false;
if(head != NULL){
ListNode *p1 = head;
ListNode *p2 = head;
int i = 0;
while(p1->next){
i++;
p1 = p1->next;
if( i%2 == 0) p2 = p2->next;
if(p1 == p2){
flag = true;
break;
}
}
}
return flag;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: