❗❗142环形链表II

发布时间 2023-04-23 22:18:19作者: chuxin_jian

力扣刷题 142.环形链表 II-- day4

题目分析

这道题目难度较大, 特别是要求空间复杂度为 O(1)的时候

如果不追求空间复杂度的话, 可以使用 hash 表

把目前遍历的节点指针存入 hash 表, 当下次在 hash 表中找到该节点时, 即找到了答案

空间复杂度为 O(1)的解法:
较为复杂, 具有一定的数学分析
下次再实现

解法一、使用 unordered_set 作为 hash 表

ListNode *detectCycle(ListNode *head)
{
    unordered_set<ListNode *> nodeSet;
    while (head)
    {
        if (nodeSet.find(head) != nodeSet.end())
        {
            return head;
        }
        else
        {
            nodeSet.insert(head);
            head = head->next;
        }
    }
    return nullptr;
}

解法二、暂未实现