力扣142. 环形链表 II

Problem: 142. 环形链表 II

题目描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述

思路

1.定义快慢指针fast和slow均指向链表的头节点,当fast没到达链表的结尾时,每次fast走两步,slow走一步;如果存在环则当slow和fast相遇时则退出循环;
2.若存在环,则再将slow指向头节点,再让slow和fast同时向后移动则再次相遇的位置就是环的起始点

复杂度

时间复杂度:

O ( n ) O(n) O(n);其中 n n n为链表的节点个数

空间复杂度:

O ( 1 ) O(1) O(1)

Code

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    /**
     * Find the starting position of the ring
     * 
     * @param head The head of linked list 
     * @return
     */
    ListNode *detectCycle(ListNode *head) {
        ListNode* fast = head;
        ListNode* slow = head;
        while (fast != nullptr && fast -> next != nullptr) {
            fast = fast -> next -> next;
            slow = slow -> next;
            if (fast == slow) {
                break;
            }
        }
        if (fast == nullptr || fast -> next == nullptr) {
            return nullptr;
        }

        slow = head;
        while (slow != fast) {
            fast = fast -> next;
            slow = slow -> next;
        }
        return slow;
    }
};

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 11:58:09       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 11:58:09       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 11:58:09       82 阅读
  4. Python语言-面向对象

    2024-03-20 11:58:09       91 阅读

热门阅读

  1. Web基础与http协议

    2024-03-20 11:58:09       42 阅读
  2. LeetCode 223.矩形面积 Python题解

    2024-03-20 11:58:09       44 阅读
  3. leetcode 402. 移掉 K 位数字

    2024-03-20 11:58:09       41 阅读
  4. 美易官方:美股调整即将到来?

    2024-03-20 11:58:09       46 阅读
  5. 富格林:正规识别黑幕特征安全预防

    2024-03-20 11:58:09       38 阅读
  6. HTTPS 为什么比HTTP安全?

    2024-03-20 11:58:09       43 阅读
  7. 计算机网络拓扑结构

    2024-03-20 11:58:09       37 阅读
  8. npm run dev命令的执行顺序和原理

    2024-03-20 11:58:09       45 阅读
  9. MySQL面试复习记录

    2024-03-20 11:58:09       37 阅读
  10. 昆山项目外包选邦芒人力 企业用工无忧解决方案

    2024-03-20 11:58:09       42 阅读
  11. 【ROS】利用ROS标准消息std_msgs::String发送结构体

    2024-03-20 11:58:09       36 阅读