어흥
[해커랭크] Delete a Node (C++) 본문
728x90
반응형
문제 링크: www.hackerrank.com/challenges/delete-a-node-from-a-linked-list/problem?h_r=internal-search
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
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
[해커랭크] Reverse a linked list (C++) (0) | 2021.01.15 |
---|---|
[해커랭크] Print in Reverse (C++) (0) | 2021.01.15 |
[해커랭크] Insert a Node at the Tail of a Linked List (C++) (0) | 2021.01.14 |
[해커랭크] Insert a node at a specific position in a linked list (C++) (0) | 2021.01.14 |
[해커랭크] Insert a node at the head of a linked list (C++) (0) | 2021.01.14 |
Comments