어흥

[해커랭크] Reverse a linked list (C++) 본문

알고리즘/HackerRank

[해커랭크] Reverse a linked list (C++)

라이언납시오 2021. 1. 15. 10:45
728x90
반응형

문제 링크: www.hackerrank.com/challenges/reverse-a-linked-list/problem?h_r=internal-search

 

Reverse a linked list | HackerRank

Change the links between the nodes of a linked list to reverse it

www.hackerrank.com

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
반응형
Comments