Programming/C C++

[DS] Delete a Node

728x90

www.hackerrank.com/challenges/delete-a-node-from-a-linked-list/problem

position이 주어지고 해당 position의 노드를 삭제하는 코드를 작성해야 한다.

 

SinglyLinkedListNode* deleteNode(SinglyLinkedListNode* head, int position) {
    SinglyLinkedListNode* temp = head;
    SinglyLinkedListNode* tmp;
    if(position == 0)
    {
        head = head->next;
        return head;
    }
    for(int i=0;i<position-1;i++){
        temp = temp->next;
    }
    tmp = temp->next;
    temp->next = tmp->next;
    free(tmp);
    return head;
}

△ 작성한 부분

항상 모든 경우에 대비하는 코드를 작성해야 함을 잊지말자..

0번 position 즉, head 노드를 삭제할 경우에는 더 간단하게 끝난ㄴ다.

 

 

 

SMALL

'Programming > C C++' 카테고리의 다른 글

Drawing Book  (0) 2020.09.27
[DS] Reverse a doubly-linked list  (0) 2020.09.27
Migratory Birds  (0) 2020.09.20
[DS] Insert a node at a specific position in a linked list  (0) 2020.09.13
Divisible Sum Pairs  (0) 2020.09.13