728x90
[Javascript] (LeetCode) 206. Reverse Linked List (Easy)
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
if (head === null || head.next === null) {
return head;
}
const result = reverseList(head.next);
head.next.next = head;
head.next = null;
return result;
};
- 1) 아이디어상으론 head.next를 통해 끝까지 가서 차례대로 하나씩 돌리면 되겠다고 생각했습니다.
- 2) 그런데!! 이전 노드를 선택하는 방법을 전혀 모르겠더라구요. 그래서 결국 다른 사람들 풀이를 공부했습니다.
- 3) 릿코드상 인기많은 풀이는 제가 생각한 아이디어는 아니고 좀더 신박한 아이디어로 처음부터 돌리면서 끝까지 나아가는 아이디어였습니다.
- 4) 그래서 구글링을 통해 아래 링크들로 재귀함수를 이용하는 방법을 찾았습니다.
- 5) 재귀함수를 이용하면 재귀를 빠져나오면 이전 head가 스콥에 남아있기 때문에 돌아가서 선택하는 것과 같은 형태가 됩니다.
- 6) 이를 이용해서 뒤에서부터 차례대로 방향을 바꿀수 있었습니다.
- https://underdog11.tistory.com/78
https://bcp0109.tistory.com/142
배운 점, 느낀 점
- 재귀함수를 잘 모르는데 공부를 해봐야겠다.
- 하노이탑 이해안되서 포기했었는데 다시 해봐야겠다.
'Coding Test > LeetCode' 카테고리의 다른 글
[Javascript] (LeetCode Medium) 841. Keys and Rooms (0) | 2022.12.21 |
---|---|
[Javascript] (LeetCode) 49. Group Anagrams(Medium) (0) | 2022.09.17 |
[Javascript] (LeetCode) 21. Merge Two Sorted Lists (Easy) (0) | 2022.08.09 |
[Javascript] (LeetCode) 13. Roman to Integer (Easy) (0) | 2022.08.08 |
[Javascript] (LeetCode) 66. Plus One (Easy) (0) | 2022.08.04 |
[Javascript] (LeetCode) 28. Implement strStr() (Easy) (0) | 2022.08.03 |
[Javascript] (LeetCode) 8. String to Integer (atoi) (Medium) (0) | 2022.08.02 |
[Javascript] (LeetCode) 125. Valid Palindrome (Easy) (0) | 2022.07.29 |
댓글