【剑指Offer】【链表】链表中环的入口结点
2024-10-21 12:47:07
题目:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。
A:创建两个指针,一个pFast一个pSlow指向链头,pFast一次走2步,pSlow一次走1步,如果两个指针必相遇,则链表有环
把其中一个指针指向链表头部,另一个指针位置不变(它还在环内),两个指针每次各走1步,直到相遇的地方就是环的入口结点
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
*/
class Solution {
public:
ListNode* EntryNodeOfLoop(ListNode* pHead)
{
ListNode* pFast = pHead;
ListNode* pSlow = pHead; while ((pFast != nullptr) && (pFast->next != nullptr) && (pSlow != nullptr))
{
pFast = pFast->next->next;
pSlow = pSlow->next;
if (pFast == pSlow)
{
break;
}
}
if ((pFast == nullptr) || (pFast->next == nullptr) || (pSlow == nullptr))
{
return nullptr;
}
pFast = pHead;
while (pFast != pSlow)
{
pFast = pFast->next;
pSlow = pSlow->next;
}
return pFast;
}
};
最新文章
- [bzoj1007][HNOI2008][水平可见直线] (斜率不等式)
- AFN设置请求超时时间
- c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
- 《Head First Servlet JSP》学习笔记一
- jQuery 怎么判断DIV出现在可视区域
- windows下ruby安装环境配置
- CentOS安装TortoiseSVN svn 客户端
- xml 和 json 的区别
- 线性时间常数空间找到数组中数目超过n/5的所有元素
- bootargs中的环境变量说明和一些常用的uboot命令
- jquery序列化元素
- MySQL read_only选项的作用
- linux log系统图
- springMVC在普通方法中调用service方法
- mybaties xml 的头部
- day 03 基本数据类型的使用、运算符
- numpy.asmatrix的用法
- word个人信息的一种处理方式
- j解决sparkr中使用某些r的原生函数 发生错误Error: class(objId) == ";jobj"; is not TRUE的问题
- 【Android】10.4 卡片视图