您的位置:首页 > 其它

leetcode-Linked List Cycle-141

2016-06-05 00:13 302 查看
确定链表是否有环。经典题目,有环是说尾指针指向了链表中的某个节点。用两个指针,一个走两步,一个走一步,如果相遇就说明有环,就是一个周期的问题。如果没有环,走两步的指针走到头就结束遍历,如果有环,两个指针相遇了就结束。如果有环,要走多久有空自己算一下。

/**
* Definition for singly-linked list.
* struct ListNode {
*     int val;
*     ListNode *next;
*     ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode* p=head;
ListNode* q=head;
while(q&&q->next){  //q->next这个条件是为了下面第二行不re
p=p->next;
q=q->next->next;
if(p==q){
return true;
}
}
return false;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode