728x90
206. Reverse Linked List
주어진 노드를 역순으로 새로 연결하는 것이다.
class Solution {
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode current = head;
while(current != null){
ListNode next = current.next;
current.next = prev;
prev = current;
current = next;
}
return prev;
}
}
문제 풀이
- 먼저 세개의 포인터가 필요하다 (prev, current, next)
- 가장 먼저 prev 포인터를 null로 만들어준다.
- 현재의 포인터 current를 head로 만들어준다.
- head가 null이 되기 전까지 while문을 돌려준다.
- 현재 노드를 거꾸로 만들기 위해 current.next= prev를 해줘야 하는데 그전에, current의 다음과 연결이 끊기는 것을 막기 위해 기존 current의 다음 노드를 next에 저장해준다.
- 이후 3개 포인터 전체를 한 칸씩 밀어준다. prev -> current, current -> next
'알고리즘' 카테고리의 다른 글
알고리즘 BigO 간단 정리 (1) | 2024.01.07 |
---|---|
[Day5/75] LeetCode 75 (0) | 2023.04.24 |
[Day4/75] LeetCode 75 (0) | 2023.04.21 |
[Day2/75] LeetCode 75 (0) | 2023.04.19 |
[Day1/75] LeetCode 75 (0) | 2023.04.19 |