欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode 141.环形链表

发布时间:2025/5/22 编程问答 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Leetcode 141.环形链表 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

难度:简单

频率:155

题目:
给你一个链表的头节点head,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。如果pos是-1,则在该聊表中没有环。
注意:pos不作为参数进行传递,仅仅是为了标识链表的实际情况。
如果链表中存在环,则返回true,否则,返回false。

解题方法:快慢指针
解题思路:
1.同时指向head
2.进入循环while判断两指针是否同时为空
3.循环里 快指针走两步,.next.next;慢指针走一步 .next;
如果在循环里 有两指针相遇,则说明有环。
4.跳出循环走到最后则说明没环。

public class Solution {public boolean hasCycle(ListNode head) {ListNode fast = head;ListNode slow = head;// 空链表、单节点链表一定不会有环while (fast != null && fast.next != null) { //这个里的条件总是漏掉 fast.next!=nullfast = fast.next.next; // 快指针,一次移动两步slow = slow.next; // 慢指针,一次移动一步if (fast == slow) { // 快慢指针相遇,表明有环return true;}}return false; // 正常走到链表末尾,表明没有环} }

主要注意的点:

  • 判断环形 只有一个条件,就是 快慢指针相遇。
  • 肯定不会有环形的 : 1.空链表 。2.单节点。
  • while里面fast != null && fast.next != null 不能换成 fast.next != null && fast!= null。会报空指针异常。 原因是 当fast==null时,fast.next不成立,报空指针异常。

总结

以上是生活随笔为你收集整理的Leetcode 141.环形链表的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。