判断链表是否存在环(及其延伸)
1、如何判断一个链表是不是这类链表?
2、如果链表为存在环,如果找到环的入口点?
一、判断链表是否存在环,办法为:
设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)程序如下:
{
slist *slow = head, *fast = head;
{
slow = slow->next;
fast = fast->next->next;
if ( slow == fast ) break;
}
}
s= nr
a + x = nr
a + x = (n – 1)r +r = (n-1)r + L - a
a = (n-1)r + (L – a – x)
{
slist *slow = head, *fast = head;
{
slow = slow->next;
fast = fast->next->next;
if ( slow == fast ) break;
}
return NULL;
while (slow != fast)
{
slow = slow->next;
fast = fast->next;
}
}
转载于:https://blog.51cto.com/sbxxs/218781
判断链表是否存在环(及其延伸)相关推荐
- 快慢指针判断链表是否有环
链表中很经常会出现的一个问题,判断链表是否有环,标准答案也已经烂熟于心,设置快慢指针,快指针每次走2步,慢指针每次走1步,如果两个指针可以相遇的话,证明链表有环,反之无环. 我有时候就犯嘀咕,它俩一定 ...
- 【刷算法】判断链表是否有环以及返回入环节点
题目描述 判断一个单链表是否有环,有环则返回入环节点,否则返回null 1->2->3->4->5->6↑ ↓8<-7 复制代码 例如上面这个链表就有环,入环节点是 ...
- 双指针算法之快慢指针(一):力扣【判断链表是否有环】leetcode-141、142
一.简介:什么是快慢指针? 快慢指针,顾名思义,无非就是设置一个快指针,一个慢指针,初始化的时候,快指针和慢指针都指向链表的头结点,前进的时候一个在前一个在后,结合起来可以十分巧妙的解决链表中的一些问 ...
- 剑指offer之判断链表是否包含环
1 问题 判断链表是否包含环 2 思路 2个指针,一个指针走一步,一个指针走2步,如果相遇则有,反之无. 3 代码实现 #include <stdio.h> #include <st ...
- 数据结构:单链表操作之如何判断链表是否带环及相关操作
//判断链表是否有环 int HasCircle(Node* pHead) { Node* low=pHead; Node* fast=pHead; while(fast != NULL &a ...
- 面试题:判断链表是否存在环
题目:判断链表是否存在环 思路:定义快慢指针,如果两个指针相遇则一定存在环. 1 public bool IsCircled(Node First) 2 { 3 if (First == null | ...
- 数据结构---判断链表是否有环
判断链表是否有环 判断链表是否有环 方法1 方法2 JAVA实现 问题扩展1 问题扩展2 判断链表是否有环 有一个单向链表,链表中有可能出现"环",就像下图这样.那么,如何用程序来 ...
- C程序:如何判断链表是否有环
C程序:如何判断链表是否有环 这是个常见的面试题哦,总之我面试的时候遇到过, 当时没有答上来,回去后想出来下面的方法一,该法还有个附加优点,可以判断出链表在哪个地方形成环的(即如果想拆开这个环,从哪个 ...
- 数据结构-链表(判断链表是否有环)
如何判断链表是否有环 方法1:采用快慢指针 /***************************** 函数名称:JudgmentLinkRing_1(PtrList list)* 功能描述:判断链 ...
最新文章
- 包括 一个 20像素的黑条条
- 在用户控件中用户登录后台脚本判断
- MyBatis 通用Mapper 入门教程
- Linux-手动释放linux内存cache
- eclipse中的maven build 、maven clean 、 maven install作用
- (五)操作系统安全概念和设计思想
- zabbix-server 的安装-centos7
- Win7下快速预览各种类型的文本文件
- 我女朋友让我删前任,我明明删了她还是要分手...
- 25 个精美的后台管理界面模板和布局
- 分享几个大数据相关岗位的职责和面试问题
- 使用小波变换进行灰度图像的融合
- mysql字符校对规则作用_(2)MySQL字符集及校对规则的理解
- QAM识别算法matlab,16qam调制识别matlab
- 博客9-12css2
- SSLOJ·马蹄印【DFS】
- 创建用户要给session权限,报错:user lacks CREATE SESSION privilege
- vue常用下载的依赖
- Excel操作报错 Application excelApp = new Application()异常
- python 惰性属性_python中惰性对象
热门文章
- 据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗?
- 广告条随滚动条的移动而移动
- 如何在DataGrid里面使用动态图形表示数字
- 在ASP.NET中跨页面实现多选
- bug诞生记——隐蔽的指针偏移计算导致的数据错乱
- tiny-cnn开源库的使用(MNIST)
- 【C++】C++11 STL算法(三):分隔操作(Partitioning operations)、排序操作(Sorting operations)
- linux 测试环境启用jar_Linux下用java -jar运行可执行jar包的方法教程
- c++ ofstream 文件不存在_使用C语言中的头文件有什么技巧和注意事项吗?为什么不直接包含C文件呢?...
- ios TableView编辑状态多选框的修改