Programming/C C++

[DS] Insert a Node at the Tail of a Linked List

728x90

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

연결리스트의 tail, 끝 부분에 노드를 삽입하는 함수를 작성해야 한다.

SinglyLinkedListNode* insertNodeAtTail(SinglyLinkedListNode* head, int data) {
    SinglyLinkedListNode* node = head;
    SinglyLinkedListNode* tmp = malloc(sizeof(SinglyLinkedList));
    tmp->data = data;
    tmp->next = NULL;
    if(head==NULL){
        head = tmp;
        return head;
    }
    while(node->next !=NULL){
        node = node->next;
    }
    node->next = tmp;
    return head;
}

△ 작성한 부분

head가 NULL이 아닌 경우, 기존의 Linked list의 말단 노드를 찾기 위한 노드 node를 생성해 head를 초기값으로 하도록 한다.

data를 최말단 노드에 삽입하기 위해서는 data를 값으로 하는 SinglyLinkedListNode 타입의 노드를 하나 생성해야 한다. 뭔가 변수명을 반대로 하는 게 더 현명했을 것 같지만....어쨌든 이를 tmp 노드로 잡고 malloc함수를 사용해 구조체만큼의 크기를 할당한다.

 

SMALL

'Programming > C C++' 카테고리의 다른 글

[DS] Insert a node at the head of a linked list  (0) 2020.08.30
Birthday Chocolate  (0) 2020.08.30
Breaking the Records  (0) 2020.08.23
Print the Elements of a Linked List  (0) 2020.08.16
Kangaroo  (0) 2020.08.16