#yyds干货盘点# 面试必刷TOP101:判断链表中是否有环

网友投稿 739 2022-10-25 15:30:10

#yyds干货盘点# 面试必刷TOP101:判断链表中是否有环

1.简述:

描述

判断给定的链表中是否有环。如果有环则返回true,否则返回false。

输入分为两部分,第一部分为链表,第二部分代表是否有环,然后将组成的head头结点传入到函数里面。-1代表无环,其它的数字代表有环,这些参数解释仅仅是为了方便读者自测调试。实际在编程时读入的是链表的头节点。

例如输入{3,2,0,-4},1时,对应的链表结构如下图所示:

可以看出环的入口结点为从头结点开始的第1个结点(注:头结点为第0个结点),所以输出true。

示例1

输入:

{3,2,0,-4},1

复制

返回值:

true

复制

说明:

第一部分{3,2,0,-4}代表一个链表,第二部分的1表示,-4到位置1(注:头结点为位置0),即-4->2存在一个链接,组成传入的head为一个带环的链表,返回true

示例2

输入:

{1},-1

返回值:

false

说明:

第一部分{1}代表一个链表,-1代表无环,组成传入head为一个无环的单链表,返回false

示例3

输入:

{-1,-7,7,-4,19,6,-9,-5,-2,-5},6

返回值:

true

2.代码实现:

public class Solution { public boolean hasCycle(ListNode head) { if(head == null || head.next == null){ return false; } ListNode slow = head; ListNode fast = head.next.next; while(fast != null && fast.next != null){ if(slow == fast){ return true; } slow = slow.next; fast = fast.next.next; } return false; }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Proton -一个兼容的StackPHP微型的PHP框架
下一篇:#yyds干货盘点# leetcode算法题:反转链表
相关文章