LeetCode 83 정렬 체인 테이블의 반복 요소 삭제 빠른 포인터 귀환

4882 단어 Leetcode

제목 설명


정렬 체인 테이블을 지정하고 모든 중복된 요소를 삭제하여 모든 요소가 한 번만 나타날 수 있도록 합니다.
예 1:
 : 1->1->2
 : 1->2

예 2:
 : 1->1->2->3->3
 : 1->2->3

분석


빠른 포인터를 사용하여 반복 요소를 덮어쓰거나 반복 방법으로 덮어쓸 수 있습니다.

코드


빠른 바늘

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if (!head || !head -> next) return head;
        ListNode* p = head;
        ListNode* q = head -> next;
        while (p -> next != NULL && p != NULL)
            if (p->val == q -> val) {
                p -> next = q ->next;
                q = q -> next;
            }
            else {
                p = p -> next;
                q = q -> next;
            }
    }
};

차례로 돌아가다

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if (!head || !head -> next) return head;
        head -> next = deleteDuplicates(head -> next);
        if (head -> next -> val == head ->val) head = head -> next;
        return head;
    }
};

좋은 웹페이지 즐겨찾기