面试题——判断链表是否有环
题目描述
给定一链表,判断是否有环(有环是指最后一个结点的指针指向链表中的某个结点,构成一个循环),若有,则输出环的入口,若无,输出NULL。
结论1:若链表有环,从同一结点出发的两个指针,走得快的一定会追上走得慢的。
结论2:若链表有环,则一个指针从相遇点出发,另一个指针从首结点出发,每次走一步,最终会在环入口相遇。(证明略)
show me the code
ListNode* EntryNodeOfLoop(ListNode* pHead){if (pHead == NULL)return NULL;ListNode *p1, *p2;p1 = p2 = pHead;while (p1->next && p1->next->next) {p1 = p1->next->next;p2 = p2->next;if (p1 == p2)break;}if (!p1->next || !p1->next->next)return NULL;p2 = pHead;while (p1 != p2) {p1 = p1->next;p2 = p2->next;}return p2;}
面试题——判断链表是否有环相关推荐
- PHP面试高频算法面试题 -- 判断链表是否有环
题目:给定一个链表,判断链表中是否有环. 关联力扣141题目 https://leetcode-cn.com/problems/linked-list-cycle/ 题解: PHP题解 functio ...
- 面试题:判断链表是否存在环
题目:判断链表是否存在环 思路:定义快慢指针,如果两个指针相遇则一定存在环. 1 public bool IsCircled(Node First) 2 { 3 if (First == null | ...
- C程序:如何判断链表是否有环
C程序:如何判断链表是否有环 这是个常见的面试题哦,总之我面试的时候遇到过, 当时没有答上来,回去后想出来下面的方法一,该法还有个附加优点,可以判断出链表在哪个地方形成环的(即如果想拆开这个环,从哪个 ...
- 判断链表是否存在环(及其延伸)
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环. 问题: 1.如何判断一个链表是不是这类链表? 2.如果链表为存在环,如果找到环的入口点 ...
- 【刷算法】判断链表是否有环以及返回入环节点
题目描述 判断一个单链表是否有环,有环则返回入环节点,否则返回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 ...
- 快慢指针判断链表是否有环
链表中很经常会出现的一个问题,判断链表是否有环,标准答案也已经烂熟于心,设置快慢指针,快指针每次走2步,慢指针每次走1步,如果两个指针可以相遇的话,证明链表有环,反之无环. 我有时候就犯嘀咕,它俩一定 ...
最新文章
- 高级转录组分析和R数据可视化第11期(报名线上课还可免费参加线下课2020.6)
- 新职业风口已至!人社部宣布这10个职业缺口近千万!
- 最大后验估计_PR Ⅱ:贝叶斯估计/推断及其与MAP的区别
- css未知尺寸的图片的水平和垂直居中
- 中国石油计算机文化基础答案,中国石油大学17年秋《计算机文化基础》第二次在线作业答案...
- Largest Number 179
- python能做什么工作-谁适合学Python?学了Python可以做什么工作?
- 【软件解决】 解决 TortoiseSVN 图标不显示问题
- php公众号第三方登录,微信公众号开发小记——3.接入三方登录
- 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
- 计算机的组策略在什么地方,Win10本地组策略在哪里,Win10怎么打开本地组策略编辑器?...
- 麦克风声源定位原理_麦克风阵列原理及应用
- 中科大自主招生2018笔试数学之三
- springBoot学习笔记(6)——@Valid和@Validated的使用
- 快速入门基于区块链的BPM系统--汇流BPM
- windows10如何关闭cortana
- NGFW的Portal认证实验
- python使用opencv模块画简单的图形
- 解析 数据库 苹果自带地图
- 大数据学习一般学什么