어흥

[해커랭크] Insert a node at a specific position in a linked list (C++) 본문

알고리즘/HackerRank

[해커랭크] Insert a node at a specific position in a linked list (C++)

라이언납시오 2021. 1. 14. 16:20
728x90
반응형

문제 링크: www.hackerrank.com/challenges/insert-a-node-at-a-specific-position-in-a-linked-list/problem?h_r=internal-search

 

Insert a node at a specific position in a linked list | HackerRank

Insert a node at a specific position in a linked list.

www.hackerrank.com

1. 주의할 점

- 단방향 링크 리스트 노드로 인해 파라미터로 받은 Head에 대한 정보를 가지고 있어야 한다

 

2. 구현

- 새로운 단방향 링크 리스트 노드인 Node를 넘겨받은 head와 같은곳을 가리키도록 한다

- Position이후에 바로 추가할 수 있도록 Cnt=1로 초기화하고 While문을 시작한다

- 만약 Cnt가 Position이라면 새로운 Node를 만들고 링크노드 사이에 낀다. 이때, *next를 잘 설정 할 수 있도록 한다

- While문을 돌때마다 Cnt++, head가 다음 node를 가리키도록 옮긴다

 

SinglyLinkedListNode* insertNodeAtPosition(SinglyLinkedListNode* head, int data, int position) {
    SinglyLinkedListNode* node = head;
    int cnt=1;
    while(head){
        if(cnt==position){
            SinglyLinkedListNode* newNode = new SinglyLinkedListNode(data);
            newNode->next = head->next;
            head->next = newNode;
            head = head->next;
        }
        cnt++;
        head = head->next;
    }
    return node;
}
728x90
반응형
Comments