Given the head
of a singly linked list, reverse the list, and return the reversed list.
주어진 단일 연결 리스트의 head
가 있을 때, 이 리스트를 뒤집고 뒤집힌 리스트를 반환합니다.
입력: head = [1,2,3,4,5]
출력: [5,4,3,2,1]
입력: head = [1,2]
출력: [2,1]
입력: head = []
출력: []
0
에서 5000
까지의 범위입니다.-5000 <= Node.val <= 5000
추가 질문: 연결 리스트는 반복적으로 또는 재귀적으로 뒤집을 수 있습니다. 두 방법 모두 구현할 수 있나요?
class Solution {
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode beforeNode = null;
while (head != null) {
ListNode nextNode = head.next;
head.next = beforeNode;
beforeNode = head;
head = nextNode;
}
return beforeNode;
}
}