Leetcode Java Reverse Linked List

업데이트:

문제

Link

코드

/**
 * 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 listNode = null;
    while (head != null) {
      ListNode temp = head.next;
      head.next = listNode;
      listNode = head;
      head = temp;
    }
    return listNode;
  }

}

결과

Link

설명

  1. 주어진 ListNode인 head를 역순으로 바꾸는 문제이다.

  2. 역순으로 바꾼 ListNode를 저장하기 위한 listNode를 정의한다.

  3. head가 null이 아닐 때 까지 반복하여 listNode에 역순으로 넣어준다.
    • temp에 head의 next ListNode를 넣어주고, head.next에 listNode를 넣어준다.
    • listNode에 다시 head를 넣어주고, head에 temp를 넣어줌으로써 순서를 반전시킨다.
  4. 반복이 완료되면 역순으로 저장한 listNode를 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기