본문 바로가기
Beakjoon&프로그래머스/Java

[LeetCode/Java] Reverse Linked List

by 현장 2026. 1. 1.

-Code

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        // 이전 노드 선언
        ListNode prev = null;
        // 현재 노드를 가리키는 노드 선언
        ListNode nowNode = head;

        while(nowNode != null) {
            // 다음 노드를 이전 노드로 변경 이후 사용을 위한 
            // 다음 노드 셋팅
            ListNode nextNode = nowNode.next;
            // 현재 노드의 다음을 이전 노드로 변경
            nowNode.next = prev;
            // 이전 노드가 현재 노드가 됨
            prev = nowNode;
            // 순서 변경을 위해 가리키는 노드를 다음 노드로 변경
            nowNode = nextNode;
        }
        // nowNode는 null이므로 head가된 이전 노드 반환
        return prev;
    }
}

어제 이상하게 풀어서 오늘 힌트를 보고 해결했습니다.