Leetcode 142 원형 연결리스트 II

주제 설명 :

목록을 감안할 때, 체인 링의 시작으로 첫 번째 노드를 반환합니다. 비순환 체인 경우, NULL이 반환된다. (NA의 여분의 공간)

해결 방법 :

플로이드 알고리즘

속도 손가락 반지의 목록이 있는지 알아 1..

찾을 2. 만남 노드 step.1 입구 링을 식별합니다.

step.2 증거 난 그냥 문제의 해결지도를 leetcode을 훔치는 것

 

 

AC 코드 :

클래스 솔루션 {
 공개 : 
    ListNode * fisrtM (ListNode * 헤드) 
    { 
        ListNode * 느린; 
        ListNode * 빠른; 
        느린 = 빠른 = 머리;
        동안 (빨리! = NULL) 
        { 
            둔화 = 슬로우> 다음을;
            경우 (faster-> 다음 == NULL) 반환 NULL; 
            빠른 = faster->하는 next-> 다음;
            경우 (느린 == 빨리가) 반환 느린; 
        } 
        반환없는; 

    } 
    ListNode * detectCycle (ListNode * 헤드) {
         경우 (헤드 == NULL) 복귀 NULL; 
        ListNode * FM = fisrtM (헤드);
        경우 (FM == NULL) 반환 NULL; 
        ListNode * ANS = 헤드;
        동안 (ANS =! FM) 
        { 
            ANS = ans-> 다음; 
            FM = FM-> 다음; 
        } 
        반환 ANS를; 
        
    } 
};

 

추천

출처www.cnblogs.com/z1141000271/p/12454262.html