어흥

[해커랭크] Delete duplicate-value nodes from a sorted linked list (C++) 본문

알고리즘/HackerRank

[해커랭크] Delete duplicate-value nodes from a sorted linked list (C++)

라이언납시오 2021. 1. 15. 11:56
728x90
반응형

문제 링크: www.hackerrank.com/challenges/delete-duplicate-value-nodes-from-a-sorted-linked-list/problem?h_r=internal-search

 

Delete duplicate-value nodes from a sorted linked list | HackerRank

Given a linked list whose nodes have data in ascending order, delete some nodes so that no value occurs more than once.

www.hackerrank.com

1. 주의할 점

- 입력받는 List는 오름차순으로 정렬되어 있다

- 중복될 경우, 새로운 포인터를 이용한다

 

2. 구현

- Head가 가리키는 주소를 저장할 Node를 설정한다

- While문을 수행하여 Head의 처음부터 끝까지 탐색한다

- 현재 head의 값과 head 다음 Node의 값이 같다면 head->next를 head->next->next로 설정한다

- 현재 head의 값과 head 다음 Node의 값이 다르면 head = head->next로 설정한다

 

SinglyLinkedListNode* removeDuplicates(SinglyLinkedListNode* head) {
    SinglyLinkedListNode* node = head;
    while(head->next){
        if(head->next->data==head->data)
            head->next = head->next->next;
        else
            head = head->next;
    }
    return node;
}
728x90
반응형
Comments