首页 > 代码库 > Linked List Cycle II
Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null
.
Follow up:
Can you solve it without using extra space?
题意
判断一个链表是否有环,如果没有环,返回null。如果有环返回环开始的节点
思路
这里我用的是hash表来做,遍历链表,如果链表没有出现在hash表中,put到hash表中,如果在hash表中出现过,说明出现环,返回节点。遍历到链表最后,说明没有环,返回空
1 import java.util.Hashtable; 2 public class Solution { 3 public ListNode detectCycle(ListNode head) { 4 Hashtable<ListNode, ListNode> hashtable = new Hashtable<ListNode, ListNode>(); 5 while(head != null){ 6 ListNode temp = hashtable.get(head); 7 if(temp == null){ 8 hashtable.put(head, head); 9 head = head.next;10 continue;11 }12 else{13 return temp;14 }//else15 }//else16 17 return null;18 }19 }
Linked List Cycle II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。