力扣刷题 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;
}