lintcode-102-带环链表
2017-07-14 08:41
253 查看
102-带环链表
给定一个链表,判断它是否有环。
样例
给出 -21->10->4->5, tail connects to node index 1,返回 true挑战
不要使用额外的空间标签
链表 两根指针思路
快慢指针的典型应用,使用块指针 fast 与慢指针 slow,slow每次后移一位,fast 每次后移两位,当fast 与 slow 指向同一节点时,说明存在环。就如同操场跑圈时,领先一圈的人会遇上跑在他后面的人那样。code
/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */ class Solution { public: /** * @param head: The first node of linked list. * @return: True if it has a cycle, or false */ bool hasCycle(ListNode *head) { // write your code here ListNode * fast = head, *slow = head; while(fast != NULL && fast->next != NULL) { slow = slow->next; fast = fast->next->next; if(fast == slow) { return true; } } return false; } };
相关文章推荐
- lintcode(102)带环链表
- lintcode-带环链表-102
- [LintCode 102] 带环链表(Python)
- lintcode 带环链表(102)
- [LintCode] 带环链表 II Linked List Cycle II
- lintcode-103-带环链表 II
- LintCode 带环链表
- *[Lintcode]带环链表 II
- LintCode-带环链表 II
- lintcode(103)带环链表 II
- 【LintCode】 Linked List Cycle 带环链表
- lintcode--带环链表II
- LinCode_102_带环链表
- LintCode_103_带环链表 II
- LintCode(103)带环链表 II
- 带环链表-LintCode
- LintCode 带环链表(快慢指针法)
- 判断链表是否带环
- lintcode-删除链表中倒数第n个节点-174
- LintCode-两两交换链表中的节点