C++LeetCode 구현(82.질서 있 는 링크 의 중복 항목 제거 2)

[LeetCode]82.Remove Duplicates from Sorted List II 질서 있 는 링크 의 중복 항목 을 제거 합 니 다.
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
Example 1:
Input: 1->2->3->3->4->4->5
Output: 1->2->5
Example 2:
Input: 1->1->1->2->3
Output: 2->3
이전 그 거 랑Remove Duplicates from Sorted List 다른 점 은 여기 서 모든 중복 항목 을 삭제 해 야 한 다 는 것 이다.링크 의 시작 에 중복 항목 이 있 을 수 있 기 때문에 삭 제 된 헤드 포인터 가 바 뀌 고 결국은 링크 의 헤드 포인터 로 돌아 가 야 한다.따라서 새로운 노드 를 정의 한 다음 에 체인 에 있 는 원래 의 링크 를 정의 한 다음 에 전구 포인터 와 현 지침 을 정의 해 야 한다.전구 포인터 가 새로운 노드 를 가리 킬 때마다 현 지침 은 다음 위치 에서 아래로 옮 겨 다 니 고 똑 같은 것 을 만나면 계속 아래로 내 려 가 며 서로 다른 항목 을 만 날 때 까지 전구 포인터 의 next 를 아래 의 서로 다른 요 소 를 가리킨다.현재 포인터 가 옮 겨 다 니 는 첫 번 째 요소 가 다 르 면 전구 지침 을 아래로 옮 깁 니 다.코드 는 다음 과 같 습 니 다:
해법 1:

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        ListNode *cur = head;
        while (cur && cur->next) {
            if (cur->val == cur->next->val) {
                cur->next = cur->next->next;
            } else {
                cur = cur->next;
            }
        }
        return head;
    }
};
마찬가지 로 우 리 는 재 귀 를 사용 하여 할 수 있 습 니 다.먼저 공 을 판정 하고 head 가 비어 있 으 면 바로 돌아 갈 수 있 습 니 다.그리고 헤드 뒤의 결점 이 존재 하고 값 이 같다 고 판단 하면 while 순환 을 하고 뒤의 모든 값 이 같은 결점 을 건 너 뛰 고 마지막 값 이 같은 점 에서 멈춘다.예 를 들 어 예 2 에 있어 head 는 세 번 째 노드 1 에 멈 춘 다음 에 뒤의 노드 에 재 귀 함수,즉 결점 2 를 호출 합 니 다.이렇게 하 는 장점 은 돌아 오 는 값 이 모든 노드 1 을 완전히 삭제 하 는 것 입 니 다.헤드 뒤의 결점 값 이 다 르 면 헤드 뒤의 결점 에 대해 귀속 함 수 를 호출 하고 반환 값 을 헤드 의 뒤에 연결 합 니 다.그러면 헤드 결점 은 보류 합 니 다.값 이 다 르 기 때문에 마지막 에 헤드 로 돌아 가면 됩 니 다.코드 는 다음 과 같 습 니 다.
해법 2:

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if (!head || !head->next) return head;
        head->next = deleteDuplicates(head->next);
        return (head->val == head->next->val) ? head->next : head;
    }
};
여기 서 C++구현 LeetCode(82.질서 있 는 링크 의 중복 항목 을 제거 하 는 2)에 관 한 글 을 소개 합 니 다.더 많은 관련 C++는 질서 있 는 링크 의 중복 항목 을 제거 하 는 2 내용 을 실현 합 니 다.예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 십시오.앞으로 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기