어흥

[해커랭크] Delete a Node (C++) 본문

알고리즘/HackerRank

[해커랭크] Delete a Node (C++)

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

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

 

Delete a Node | HackerRank

Delete a node from the linked list and return the head.

www.hackerrank.com

1. 주의할 점

- position이 0일 때의 반환값을 잘 처리한다

 

2. 구현

- 파라미터로 받은 SinglyLinkedListNode의 Head의 위치를 저장하는 Node를 생성한다

- 만약 position이 0이라면 Head의 다음 Node를 가리키는 포인터를 넘기면 된다

- While문을 통해 현재 Node의 다음 Node가 삭제 예정이라면, 현재 Node의 다음 Node를 삭제예정인 Node의 다음을 가리키도록 한다

 

SinglyLinkedListNode* deleteNode(SinglyLinkedListNode* head, int position) {
    if(position==0) return head->next;
    SinglyLinkedListNode* node = head;
    int cnt=0;
    while(head){
        if(cnt+1==position){
            head->next = head->next->next;
            break;
        }
        head = head->next;
        cnt++;
    }
    return node;
}

 

728x90
반응형
Comments