(LeetCode)[JS] #206
206. Reverse Linked List
Number : 206
Difficulty : Easy
Related Topics : Linked List , Recursion
Language : JS
https://leetcode.com/problems/reverse-linked-list/
나열된 링크의 순서를 반대로 뒤집어라.
링크드 리스트에서 가장 빈출되기 쉬운 뒤집기 문제다.
재귀문제로도 많이 나오기 때문이 암기를 하는 수준이 되어야 하고
문제 풀이 과정을 남에게 설명도 할 줄 알아야 한다.
(2022-01-15) self try 1
// self try 1
var reverseList = function (head) {
let first = head;
let second = null; // 1
while (first) { // 5
let holding = first.next; // 2
first.next = second; // 3
second = first;
first = holding; //4
}
return second; // 새로운 링크의 head
};
1. 처음 시작때 변수를 2개 선언해준다. first(Node(1)) , second(뒤집을때 Node(1).next가 null이 되어야 하니까)
2.재귀를 이용해서 계속 오른쪽으로 연산해나가야 되기 때문에 변수 holding을 잡아준다. first.next인 Node(2)
3.화살표의 방향을 바꿔준다. 처음에는 Node(1)에서 Node(2)로 향하던 화살표가 Null로 향하게 된다.
4.이제 한칸씩 밀어주면 되겠다. 다하고 나면 first가 Node(2) second가 Node(3)이 된다.
5.이를 언제까지 반복하느냐? first가 Node(6)일때 마지막으로 하면 되니까 while(first)를 조건으로 사용하면 된다.
Author And Source
이 문제에 관하여((LeetCode)[JS] #206), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@taxtocode/LeetCode-206-by-JS저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)