class Solution {
public:
bool hasCycle(ListNode* head) {
unordered_set<ListNode*>seq;
while (head)
{
if (seq.find(head) != seq.end())
{
return true;
}
seq.insert(head);
head = head->next;
}
return false;
}
};
若无环,则所有链表节点只会访问一次,当第二次重复访问时,证明有环。
因此,只需要额外利用一个哈希表保存访问过的节点即可,注意数据类型是ListNode*(本题中val可能重复,但链表节点不会重复)