728x90
https://www.hackerrank.com/challenges/insert-a-node-at-the-tail-of-a-linked-list/problem
Data Structures > Linked Lists
단방향 연결 리스트의 맨 마지막에 노드를 삽입한다.
코드
SinglyLinkedListNode* insertNodeAtTail(SinglyLinkedListNode* head, int data) {
SinglyLinkedListNode *new_node , *temp;
new_node = (SinglyLinkedListNode*)malloc(sizeof(SinglyLinkedListNode));
temp = (SinglyLinkedListNode*)malloc(sizeof(SinglyLinkedListNode));
new_node->data = data;
new_node->next = NULL;
temp = head;
if (!head)
head = new_node;
else {
while (temp->next)
temp = temp->next;
temp->next = new_node;
}
return head;
}
설명
new_node, temp 노드를 선언한다.
new_node의 data에 삽입할 data를 저장하고, next 링크는 NULL로 저장한다.
temp 노드에는 head를 복사한다.
head가 NULL이라면 삽입할 new_node를 head로 지정한다.
그게 아니라면 temp->next가 빈 노드일 때까지 temp를 옮긴 뒤 temp->next에 new_node를 연결해준다.
728x90
'C & C++ > HackerRank' 카테고리의 다른 글
[HackerRank] Arrays - DS (1) | 2021.07.21 |
---|---|
[HackerRank] CamelCase (1) | 2021.07.21 |
[HackerRank] Grading Students (0) | 2021.07.16 |
[HackerRank] Cats and Mouse (0) | 2021.07.09 |
[HackerRank] Divisible Sum Pairs (0) | 2021.07.09 |