做网站需要到哪些部门登记,销售平台有哪些,设计公司起名大全,网站模板 简洁文章目录1 题目理解2 分析13 分析21 题目理解
输入#xff1a;一个单向链表。 输出#xff1a;如果链表中有环#xff0c;输出true。否则输出false。 规则#xff1a;单向链表只能向前移动。
2 分析1
可以把节点放入map中#xff0c;不断遍历。如果碰到已经遍历的节点一个单向链表。 输出如果链表中有环输出true。否则输出false。 规则单向链表只能向前移动。
2 分析1
可以把节点放入map中不断遍历。如果碰到已经遍历的节点则说明有环。但是这样的空间复杂度是O(n)不符合要求。
3 分析2
使用快慢指针。想象你在操场跑步一个人跑得快一个人跑得慢。经过若干圈以后这两个人一定会在某一点再次相遇。这个相遇时跑得快的人一定比跑得慢的人多跑一圈。具体查看之前的一篇文章。
public class Solution {public boolean hasCycle(ListNode head) {if(head null) return false;ListNode fast head,slow head;while(fast.next!null fast.next.next!null){fast fast.next.next;slow slow.next;if(slow fast) return true;}return false;}
}