(Linked List, Easy) Reverse Linked List

송재호·2025년 8월 7일
0

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

Linked List를 거꾸로 만드는 문제다.
prev, current 두 가지 변수로 다룰 수 있겠다.

연결된 요소 모두 순회하기 때문에 while (current != null) 조건으로 반복한다.
내부적으로 스왑을 위해서는 헷갈리지만 간단한 공식으로 한다.

  1. next포인터를 갈아끼우기 위해 변수에 임시 저장
  2. 순서역전: current의 next를 prev로 세팅
  3. prev 포인터 갱신: prev = current;
  4. current 포인터 갱신: 다음 요소로 같은 작업 반복을 위해 1번에서 뽑아둔 next 포인터로 current 갱신
class Solution {
    public ListNode reverseList(ListNode head) {
        
        ListNode prev = null;
        ListNode current = head;

        while (current != null) {
            ListNode nextNode = current.next;
            current.next = prev;
            prev = current;
            current = nextNode;
        }

        return prev;
    }
}
profile
식지 않는 감자

0개의 댓글