题解 | #链表中环的入口结点#

链表中环的入口结点

http://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4

/*
struct ListNode {
int val;
struct ListNode next;
ListNode(int x) :
val(x), next(NULL) {
}
};
*/
class Solution {
public:
ListNode
EntryNodeOfLoop(ListNode* pHead) {
//建立一个数组,遍历链表过程中,将每个结点的地址存入数组,并检查当前结点的指针域是否在数组已存在的元素中,
//若存在,说明指针域所指结点就是入口结点;若不存在,后移指针,重复上述过程
int counter = 0;
bool flag = false;
vector<ListNode > vec;
ListNode * cur = pHead;
while(cur != nullptr)
{
vec.push_back(cur);
for(vector<ListNode *>::iterator iter = vec.begin(); iter != vec.end(); iter++)
{
if(
iter == cur->next) { flag = true; break;} //当前所指结点指针域地址在数组中
}
if(!flag) cur = cur->next; //如果不在数组中,后移
else return cur->next; //如果在数组中,返回地址域指针
}
return cur; //遍历完,说明是单链表,返回空
}
};

全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务