어흥
[해커랭크] Reverse a linked list (C++) 본문
728x90
반응형
문제 링크: www.hackerrank.com/challenges/reverse-a-linked-list/problem?h_r=internal-search
1. 주의할 점
- Node의 List를 활용할 수 있어야 한다
2. 구현
- SinglyLinkedList li를 통해 SinglyLinkedListNode를 담는 리스트를 생성한다
- Stack을 통해 Head에 저장된 모든 data들을 저장하고 Stack에서 1개씩 빼면서 li에 넣는 작업을 반복한다
- Node형태로 Return해야하므로 li->head로 return한다
SinglyLinkedListNode* reverse(SinglyLinkedListNode* head) {
SinglyLinkedList* li = new SinglyLinkedList();
stack<int> s;
while(head){
s.push(head->data);
head = head->next;
}
while(!s.empty()){
li->insert_node(s.top());
s.pop();
}
return li->head;
}
728x90
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
[해커랭크] Get Node Value (C++) (0) | 2021.01.15 |
---|---|
[해커랭크] Compare two linked lists (C++) (0) | 2021.01.15 |
[해커랭크] Print in Reverse (C++) (0) | 2021.01.15 |
[해커랭크] Delete a Node (C++) (0) | 2021.01.15 |
[해커랭크] Insert a Node at the Tail of a Linked List (C++) (0) | 2021.01.14 |
Comments