DINGA DINGA
article thumbnail
728x90

https://www.hackerrank.com/challenges/insert-a-node-at-the-tail-of-a-linked-list/problem 

 

Insert a Node at the Tail of a Linked List | HackerRank

Create and insert a new node at the tail of a linked list.

www.hackerrank.com

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