华电北风吹
天津大学认知计算与应用重点实验室
日期:2015/10/8
题目描述
一个链表中包含环,请找出该链表的环的入口结点。
解析:链表中包含环的话,必有两个节点的next指针指向环的入口节点。我的思路是使用set.
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
*/
class Solution {
public:
ListNode* EntryNodeOfLoop(ListNode* pHead)
{
set<ListNode*> s;
set<ListNode*>::iterator it;
ListNode* p=pHead;
while(p!=NULL)
{
it=s.find(p);
if(it !=s.end())
return p;
else
s.insert(p);
p=p->next;
}
return NULL;
}
};