본문 바로가기
Algorithm/LeetCode

[LeetCode] 206. Reverse Linked List (C++)

by shine-jung 2021. 7. 31.
반응형

문제 링크

 

코딩하기 전 생각하기

/*
nullptr에서 시작하는 rhead 포인터를 선언한다.
head를 traverse한다.
    rhead 값을 prev에 저장한다.
    rhead에 head 값을 저장한다.
    rhead->next에 prev 값을 저장한다.
rhead를 반환한다.
*/

 


 

코드

/**
 * 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) {
        ListNode* rhead = nullptr;
        while ( head != nullptr ) {
            ListNode* prev = rhead;
            rhead = head;
            rhead->next = prev;
            head = head->next;
        }
        return rhead;
    }
};

 


 

느낀점

 

왠지 교수님께서 내주시는 문제 같다. 교수님 제 풀이가 맞나요?~~

 

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.

댓글 환영합니다!

반응형

댓글