LeetCode_linked-list-cycle-ii

来源:互联网 发布:淘宝 安能小包发货 编辑:程序博客网 时间:2024/06/10 05:28
public ListNode detectCycle(ListNode head) {
// 1.判断有没有环
ListNode quick = head;
ListNode slow = head;
int num=0;
if (head == null || head.next == null || head.next.next == null) {
return null;
}
while ( quick.next != null&&quick.next.next!=null){
if(quick==slow){
num++;
}
if(num==2){
break;
}
quick = quick.next.next;
slow = slow.next;
}
if (quick.next==null||quick.next.next == null) {
return null;
}

// 2.慢点继续一步步走,快点从头一步步走,相遇点即为所求
quick = head;
while (quick != slow) {
quick = quick.next;
slow = slow.next;
}
return quick;
}
原创粉丝点击