Programming/C C++
[DS] Delete duplicate-value nodes from a sorted linked list
ElAsJay
2020. 11. 8. 23:32
728x90
값이 같은 노드를 삭제하는 함수를 작성해야 한다.
SinglyLinkedListNode* removeDuplicates(SinglyLinkedListNode* head) {
SinglyLinkedListNode* tmp1 = head;
SinglyLinkedListNode* tmp2 = head->next;
SinglyLinkedListNode* t_free;
while(tmp1->next != NULL){
if(tmp1->data == tmp2->data){
t_free = tmp2->next;
tmp1 -> next = t_free;
free(tmp2);
tmp2 = tmp1->next;
}
else{
tmp1 = tmp1->next;
tmp2 = tmp2->next;
}
}
return head;
}
임시 노드를 3개 만들고 값이 같은 경우에는 이후에 나온 값이 같은 노드를 free를 해서 아예 메모리를 해제시킨다.
SMALL