본문 바로가기

Algorithm/자료구조

(C++) - LeetCode (easy) 206. Reverse Linked List

반응형

https://leetcode.com/problems/reverse-linked-list/description/

 

Reverse Linked List - LeetCode

Reverse Linked List - Given the head of a singly linked list, reverse the list, and return the reversed list.   Example 1: [https://assets.leetcode.com/uploads/2021/02/19/rev1ex1.jpg] Input: head = [1,2,3,4,5] Output: [5,4,3,2,1] Example 2: [https://asset

leetcode.com

자료구조를 이용한 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

head의 원소들을 vector v 를 선언해 담아줍니다.

📔 풀이과정

v의 마지막 원소부터 순회하면서 ListNode를 선언해 담아줍니다. 그 값을 반환합니다.


📕 Code

📔 C++

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        vector <int> v;
        while(head != NULL) {
            v.push_back(head -> val);
            head = head -> next;
        }
        ListNode* node = new ListNode();
        ListNode* ans = node;
        for(int i = v.size() - 1; i >= 0; i--) {
            ListNode* newNode = new ListNode(v[i]);
            node -> next = newNode;
            node = node -> next;
        }
        
        return ans->next;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.