어흥
[해커랭크] 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:20728x90
반응형
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
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
[해커랭크] Delete a Node (C++) (0) | 2021.01.15 |
---|---|
[해커랭크] Insert a Node at the Tail of a Linked List (C++) (0) | 2021.01.14 |
[해커랭크] Insert a node at the head of a linked list (C++) (0) | 2021.01.14 |
[해커랭크] Inserting a Node Into a Sorted Doubly Linked List (C++) (0) | 2021.01.14 |
[해커랭크] Is This a Binary Search Tree? (C++) (0) | 2021.01.11 |
Comments