您的位置:首页 > 职场人生

链表面试题(十一)---求带环单链表 环的入口点

2017-05-17 01:37 239 查看
一、结构体定义

typedef int DataType;

typedef struct ListNode//定义结点
{
DataType data;
struct ListNode* next;
}ListNode,*PListNode;

typedef struct  PList//定义一个成员是指向结点的指针的结构体
{
PListNode PHead;
}PList,*PList;


二、函数实现

思路:



得出的结论:

用两个指针分别从链表的头结点和快慢指针在环内的相遇接单开始走; 那么这两个结点首次相遇的结点就是链表环的入口结点;

//11.求环的入口点
PListNode GetCycleEntryNode(PListNode PHead,PListNode  meetNode)
{
PListNode start=PHead;
PListNode meet=meetNode;
while (start!=meetNode)
{
start=start->next;
meetNode=meetNode->next;
}
return start;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单链表 面试题