leetcode: (141) Linked List Cycle
2015-09-23 22:55
399 查看
【Question】
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
无环的话,必定最后一个节点指向NULL。有环的话,肯定会指向前面的节点。这一个不动步长的节点,一个每次移动一个节点,另一个每次移动两个节点,有环的话总会在一个接点处相遇。
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode *first,*second;
first=head;
second=head;
while(second!=NULL)
{
first=first->next;
second=second->next;
if(second==NULL) return false;
second=second->next;
if(first==second&&first!=NULL) return true;
}
return false;
}
};
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
无环的话,必定最后一个节点指向NULL。有环的话,肯定会指向前面的节点。这一个不动步长的节点,一个每次移动一个节点,另一个每次移动两个节点,有环的话总会在一个接点处相遇。
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode *first,*second;
first=head;
second=head;
while(second!=NULL)
{
first=first->next;
second=second->next;
if(second==NULL) return false;
second=second->next;
if(first==second&&first!=NULL) return true;
}
return false;
}
};
相关文章推荐
- [C/C++]反转链表
- C#实现基于链表的内存记事本实例
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++实现简单的学生管理系统
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法
- C#实现的简单链表类实例
- 找出链表倒数第n个节点元素的二个方法
- Java数据结构之简单链表的定义与实现方法示例
- C语言单循环链表的表示与实现实例详解
- C++实现的链表类实例
- PHP小教程之实现链表
- C语言双向链表的表示与实现实例详解
- C语言实现输出链表中倒数第k个节点
- C++语言实现线性表之链表实例
- STL list链表的用法详细解析
- C语言创建链表错误之通过指针参数申请动态内存实例分析
- php链表用法实例分析
- JavaScript中数据结构与算法(三):链表