LeetCode 141: Linked List Cycle
2016-06-22 10:28
267 查看
141. Linked List Cycle
Difficulty: EasyGiven a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
思路
定义两个指针,同时从链表头结点出发,一个指针一次走一步,另一个指针一次走两步。如果快的指针追上了慢的指针,存在环;如果快的指针追上之前就走到了链表末尾,不存在环。代码
[C++]class Solution { public: bool hasCycle(ListNode *head) { if (head == NULL) return false; struct ListNode *slow = head->next; if (slow == NULL) return false; struct ListNode *fast = slow->next; while (fast != NULL && slow != NULL) { if (fast == slow) return true; slow = slow->next; fast = fast->next; if (fast != NULL) fast = fast->next; } return false; } };
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- [C/C++]反转链表
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- C#实现基于链表的内存记事本实例
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C#模拟链表数据结构的实例解析
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例