链表中环的入口结点(算法)

思路:快慢指针

 

 

 

 

 

 

 

 

 

 

 

 

 

代码如下:

 

public ListNode inNode(ListNode head){

    ListNode slow = head;//慢指针
    ListNode fast = head;//快指针

    while(fast!=null&&fast.next!=null){
        fast = fast.next.next;
        slow = slow.next;
        if(slow==fast)
            break;
    }
    
    //判断有无环,若确定有 可去除
    if(fast==null||fast.next==null)
        return null;
    
     slow = head;
     while(slow!=fast){
         slow = slow.next;
         fast = fast.next;   
     }
     return slow;
}

 

posted @ 2022-01-13 15:17  Q子  阅读(32)  评论(0)    收藏  举报