当前位置: 首页> 房产> 政策 > LCR 021

LCR 021

时间:2025/8/15 16:37:19来源:https://blog.csdn.net/yang_brother/article/details/142110422 浏览次数:0次

题目:LCR 021


解法一:快慢指针

判断循环是否存在,一般用快慢指针算法解决。

fast 每次走两个单位,slow 每次走一个单位。当二者在环内相遇时,再创建一个指针 ptr 指向 head ,和 slow 同时走,每次走一个单位,slowptr 指针相遇位置,便是入环点

    public ListNode detectCycle(ListNode head) {ListNode slow = head, fast = head, ptr = head;while (fast != null) {slow = slow.next;//空指针判断if (fast.next == null) return null;else fast = fast.next.next;if (fast == slow) {while (ptr != slow) {ptr = ptr.next;slow = slow.next;}return ptr;}}return null;}
}

注意fast每次走两个单位,当已经指向最后一个元素时,再连续走两个单位就会报空指针异常,因此fast走两个单位时需要作空指针判断


关键字:LCR 021

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: