제안 (목록)을 수상 - 삭제 중복 노드 목록을

  (목록의 중복 노드 삭제) 주제 설명 :


A는 연결리스트 노드가 중복 분류에서 중복 된 노드 목록을 삭제, 노드가 반복 유지하지 않는, 헤드 포인터 목록을 반환합니다. 예를 들어, 목록 1-> 2-> 3-> 3-> 4 -> 4 -> 5 취급 1-> 2-> 5


  아이디어를 문제가 해결 : 중복 된 노드를 여기에 바로 예약되지 않은 노드를 반복 제거 할 수 있기 때문에 해시 세트 방법을 사용하는 것이 첫 번째 판단의 반복은, 중복 요소 가야 해시 세트에 추가 다음 중복 요소를 삭제합니다.

  사전 및 CUR 두 개의 포인터를 사용하여, 이전 노드와 현 노드를 표시.

/ * 
 공용 클래스 ListNode { 
    INT 발; 
    ListNode 다음 = NULL; 

    ListNode (INT의 발) { 
        this.val = 브로; 
    } 
} 
* / 
수입하고있는 java.util. *; 
공용 클래스 솔루션 { 
    공공 ListNode deleteDuplication (ListNode pHead) 
    { 
        경우 (pHead == NULL) { 
            는 null; 
        } 
        //先找出相同节点存入哈希세트中
        HashSet에 <정수> = 새로운 세트 HashSet의 <> (); 
        ListNode는 = pHead 미리; 
        ListNode CUR = pHead.next; 
        반면 (! CUR = NULL) { 
            경우 (cur.val == pre.val) { 
                set.add (cur.val); 
            }
            CUR = 사전, 
            CUR = cur.next; 
        } 
        동일한 노드 삭제 // 
        / ** 
        (이 중복 노드의 경우 첫 번째 노드) * 첫 번째 노드를 삭제를 
        * / 
        while 회 (PHEAD set.contains = 널 (null) && (pHead.val)! ) { 
            PHEAD = pHead.next; 
        } 
        IF (PHEAD == NULL) { 
            는 null; 
        } 
        / ** 
        * 삭제 중간 노드 
        * / 
        사전 = PHEAD; 
        CUR = pHead.next; 
        ! 그동안 (CUR = NULL) { 
            IF (set.contains (Cur.Val)) { 
                pre.next = cur.next; 
                CUR = cur.next; 
            } {를 다른 
                사전 = CUR;
                = cur.next 기여; 
            } 
        } 
        반환 애완 동물; 
    } 
}

   헤드 노드의 전면이 가능하기 때문에 결정된 헤드 노드, 반복 제거 할 필요가 있지만, 때 첫번째 특별한주의 노드는 비어 있어야 삭제 (1) 헤더의 일부를 삭제하면 비어 있고, 그렇지 않은 경우 후 빈 판사의 말 :

IF (set.contains (pHead.val)) { 
      애완 pHead.next는 =; 
}

  경우가있을 수 있습니다, 감당할 수없는 삭제 헤드 노드를 반복합니다 :

         

  필요가있다 그래서 :

반면 {(pHead = NULL && set.contains (pHead.val)!) 
     pHead = pHead.next; 
} 
(pHead == NULL) {경우 
     는 null; 
}

  (2) 사용 pre.next = cur.next 때 현재 반복 요소를 삭제할 수있다; 현재 소자 CUR에 기초하여, 세트 안에 반복 요소의 현재 세트가 필요를 제거 할 CUR 때문이다.

추천

출처www.cnblogs.com/dashenaichicha/p/12530712.html