zoukankan      html  css  js  c++  java
  • 141.Linked List Cycle 快慢指针

    问题描述:

    Given a linked list, determine if it has a cycle in it.

    我的思路:

    用一个指针指向链表头部,另一个指针在链表上移动。若两个指针指向地址相等,则存在环。

    然后我没过OJ:)

    因为循环链表的尾部并不一定链接头部,可能链接任意节点,此时会陷入死循环。

    所以应用快慢指针。

    两个指针的步长不同,若存在环,必然会相遇。

    代码实现(c++):

    class Solution {
    public:
        bool hasCycle(ListNode *head) {
            ListNode *p1 = head, *p2 = head;
            while (p2 && p2->next) {
                p1 = p1->next;
                p2 = p2->next->next;
                if (p1 == p2) return true;
            }
            return false;
        }
    };
  • 相关阅读:
    toString的本质 以及String.valueOf()
    css3选择符
    HTML5标签
    css3-动画
    2D功能函数
    css过度
    css渐变
    BFC-块级格式化上下文
    表单补充
    表格补充:
  • 原文地址:https://www.cnblogs.com/yaoyudadudu/p/9049050.html
Copyright © 2011-2022 走看看