美文网首页
Linked List Cycle - 循环链表

Linked List Cycle - 循环链表

作者: 郑明明 | 来源:发表于2016-11-03 16:29 被阅读44次
  • 题目
    Given a linked list, determine if it has a cycle in it.
    Follow up:
    Can you solve it without using extra space?
    给出一个链表,判断他是否是一个循环链表(不开辟多余的内存空间进行解决,意思是在利用链表本身的特性进行解决问题)

  • 分析
    我们可以开辟两个指针节点,一个快的节点,每次跳跃两步,一个慢的节点,每次跳跃一步,然后进行一个while循环,如果两个指针节点相同出现相同的情况下,那么说明是存在环的

  • 代码

    bool hasCycle(ListNode *head) {
        if (head == NULL || head->next == NULL) {
            return false;
        }
        ListNode *fastNode = head;
        ListNode *slowNode = head;
        while (fastNode->next != NULL && fastNode->next->next != NULL) { // 由于fastNode比slowNode增长快,所以只需要判断fastNode,同时对于fastNode需要判断后两位,所以第一位的判断也是必须的,不然会出现Runtime Error
            fastNode = fastNode->next->next; // 每次往后移动两步
            slowNode = slowNode->next; // 每次往后移动一步
            if (fastNode == slowNode) {
                return true;
            }
        }
        return false;
    }

相关文章

  • Linked List Cycle II

    Linked List Cycle II 今天是一道有关链表的题目,是Linked List Cycle(回复02...

  • Linked List Cycle - 循环链表

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

  • 分类总结

    1、判断链表循环 141、 Linked List Cycle 判断链表是否是循环链表。思路主要有两种,第一种是将...

  • 怎样应对IT面试与笔试-(十五)

    Linked List 链表 141. Linked List Cycle 判断单链表中是否有环 使用到的数据结...

  • LeetCode-142 环形链表Ⅱ-M

    环形链表Ⅰ[https://leetcode-cn.com/problems/linked-list-cycle/...

  • Day17

    Linked List Cycle**思路:判断是不是循环链表?不等价于判断链表里是否有环?前一个问题:最后一点结...

  • 链表求环

    LeetCode 141. Linked List Cycle 142.Linked List Cycle II ...

  • 6.24 linkedListCycles & reor

    to do 1] Linked List Cycle 2] Linked List Cycle II 3] Reo...

  • detectCycle

    https://leetcode.com/problems/linked-list-cycle-ii/给定一个链表...

  • Linked List Cycle II

    https://leetcode.com/problems/linked-list-cycle-ii/给定一个链表...

网友评论

      本文标题:Linked List Cycle - 循环链表

      本文链接:https://www.haomeiwen.com/subject/zbxiuttx.html