手机免费自建网站,寓意好有内涵的公司名字,北京正规网站建设公司哪家好,网络营销评价的名词解释给定一个链表#xff0c;返回链表开始入环的第一个节点。 如果链表无环#xff0c;则返回 null。
为了表示给定链表中的环#xff0c;我们使用整数 pos 来表示链表尾连接到链表中的位置#xff08;索引从 0 开始#xff09;。 如果 pos 是 -1#xff0c;则在该链表中没有…给定一个链表返回链表开始入环的第一个节点。 如果链表无环则返回 null。
为了表示给定链表中的环我们使用整数 pos 来表示链表尾连接到链表中的位置索引从 0 开始。 如果 pos 是 -1则在该链表中没有环。
说明不允许修改给定的链表。
示例 1
输入head [3,2,0,-4], pos 1 输出tail connects to node index 1 解释链表中有一个环其尾部连接到第二个节点。
hashset代码
/*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/
public class Solution {public ListNode detectCycle(ListNode head) {SetListNode listNodeSetnew HashSet();while (head!null){if(listNodeSet.contains(head))return head;listNodeSet.add(head);headhead.next;}return null;}
}快慢指针代码
/*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/
public class Solution {public ListNode detectCycle(ListNode head) {ListNode shead,fhead;while (true){if(fnull||f.nextnull) return null;ss.next;ff.next.next;if(sf) break;}fhead;while (f!s){s s.next;ff.next;}return s;}
}