Leetcode Java Reverse Linked List
업데이트:
문제
코드
/**
* 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;
}
}
결과
설명
-
주어진 ListNode인 head를 역순으로 바꾸는 문제이다.
-
역순으로 바꾼 ListNode를 저장하기 위한 listNode를 정의한다.
- head가 null이 아닐 때 까지 반복하여 listNode에 역순으로 넣어준다.
- temp에 head의 next ListNode를 넣어주고, head.next에 listNode를 넣어준다.
- listNode에 다시 head를 넣어주고, head에 temp를 넣어줌으로써 순서를 반전시킨다.
- 반복이 완료되면 역순으로 저장한 listNode를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기