어흥

[해커랭크] Insert a Node at the Tail of a Linked List (C++) 본문

알고리즘/HackerRank

[해커랭크] Insert a Node at the Tail of a Linked List (C++)

라이언납시오 2021. 1. 14. 16:38
728x90
반응형

문제 링크: www.hackerrank.com/challenges/insert-a-node-at-the-tail-of-a-linked-list/problem?h_r=internal-search

 

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

1. 주의할 점

- 파라미터로 넘겨받은 head가 nullptr인 경우 예외처리를 해주면 된다

 

2. 구현

- 단방향 링크드 리스트 노드로 구성되어 있어서, head와 같은 주소를 저장할 rtnList를 미리 생성한다

- 새로 생성한 링크드 리스트 노드 node를 미리 만들어 놓는다

- While문을 통해 head가 tail을 가리키도록 한다(NULL 바로 앞의 주소)

- 만약 head가 nullptr이라면 node를 그대로 반환한다

- head가 nullptr이 아니라면, head에 node를 추가한 이후, rtnList를 반환한다

 

SinglyLinkedListNode* insertNodeAtTail(SinglyLinkedListNode* head, int data) {
	SinglyLinkedListNode* rtnList = head;
	SinglyLinkedListNode* node = new SinglyLinkedListNode(data);
	while (head) {
		if (head->next == nullptr) break;
		head = head->next;
	}
	if (head == nullptr) return node;
	head->next = node;
	return rtnList;
}
728x90
반응형
Comments