方法一、快慢指针法 快的走两步 慢的走一步 只要有交点 就返回true; 伪代码: slow = slow->next; fast = fast->next->next; if (slow == fast) { return true; }

方法二、哈希表法

找出重复访问的值 unordermap< ListNode*,bool> m if (m.find(head) != m.end()) return true; m[head] = true; head = head->next;