자바 링크 의 중복 노드 삭제

1330 단어 단순 알고리즘
제목 설명
정렬 된 링크 에 중복 되 는 노드 가 존재 합 니 다.이 링크 에서 중복 되 는 노드 를 삭제 하 십시오.중복 되 는 노드 는 보류 하지 않 고 체인 헤더 지침 을 되 돌려 주 십시오.예 를 들 어 링크 1->2->3->3->4->5 처리 후 1->2->5
/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    public ListNode deleteDuplication(ListNode pHead)
    {
        if(pHead == null || pHead.next == null){
            return pHead;   
        }
        
        ListNode curNode = pHead;
        ListNode nextNode = null;
        ListNode headNode = new ListNode(-1);
        ListNode preNode = headNode;
        headNode.next = pHead;
        
        while(curNode!=null){
            nextNode = curNode.next;     
            if(nextNode!=null && curNode.val == nextNode.val){
              
                //                 
                while(nextNode!=null && curNode.val == nextNode.val){
                    nextNode = nextNode.next;
                }

                preNode.next = nextNode;
                curNode = nextNode;
               
            }else{
                   preNode = curNode;
                   curNode = nextNode;
                   
               }
            
        }
  
       return headNode.next;
    }
}

좋은 웹페이지 즐겨찾기