Description:
题目大意:寻找链表中环的入口
解题思路:
算法标签:set、哈希表
- 如果只有一个元素或者空链表返回 NULL
- 利用 set, 找到第一个集合已存在的元素,即为环的入口
代码:
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
*/
class Solution {
public:
ListNode* EntryNodeOfLoop(ListNode* pHead) {
if((pHead == NULL) || (pHead -> next == NULL))
return nullptr;
set<ListNode* >visited;
ListNode* ans = NULL;
while(pHead != NULL) {
if(visited.count(pHead) > 0) {
ans = pHead;
break;
}
visited.insert(pHead);
pHead = pHead -> next;
}
return ans;
}
};