728x90
[Javascript] 19. Remove Nth Node From End of List (LeetCode - Medium)
💡 구글에 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
* @param {number} n
* @return {ListNode}
*/
var removeNthFromEnd = function(head, n) {
let slow = head;
let fast = head;
while(n--) {
fast = fast.next;
}
if (!fast) {
return head.next;
}
while (fast && fast.next) {
slow = slow.next;
fast = fast.next;
}
slow.next = slow.next.next;
return head;
};
- 1) fast는 slow보다 n만큼 미리 앞으로 나가 있기
- 2) 어려웠던 부분
if(!fast) {return head.next;}로
로 에지케이스 처리하기.- fast가 null 이라는건 연결리스트의 길이보다 n이 크다는것 그래서
head.next;
로 비어있는 연결리스트를 return 해준다. (이거 다른 사람 풀이 보고 따라한거라 지금도 헷갈림)
- fast가 null 이라는건 연결리스트의 길이보다 n이 크다는것 그래서
- 3) slow는 첫번째 노드, Fast는 n번째 노드부터 순회하기
- 4) 정상 케이스 일때, slow.next가 삭제하고 싶은 노드니까 slow.next.next로 바꿔주기
<맞왜틀 기록>
07/14/2022 14:31 Accepted 88 ms 43.7 MB javascript
07/14/2022 14:28 Runtime Error N/A N/A javascript
07/14/2022 14:27 Runtime Error N/A N/A javascript
07/14/2022 14:25 Wrong Answer N/A N/A javascript
07/14/2022 14:25 Wrong Answer N/A N/A javascript
07/14/2022 14:23 Wrong Answer N/A N/A javascript
07/14/2022 14:22 Runtime Error N/A N/A javascript
07/14/2022 14:22 Wrong Answer N/A N/A javascript
07/14/2022 14:22 Wrong Answer N/A N/A javascript
07/14/2022 14:21 Wrong Answer N/A N/A javascript
07/14/2022 14:21 Wrong Answer N/A N/A javascript
07/14/2022 14:21 Wrong Answer N/A N/A javascript
07/14/2022 14:20 Wrong Answer N/A N/A javascript
07/14/2022 14:20 Wrong Answer N/A N/A javascript
07/14/2022 14:17 Wrong Answer N/A N/A javascript
07/14/2022 14:17 Runtime Error N/A N/A javascript
배운 점, 느낀 점
- null, undefined 이런 애들 다루기가 너무 헷갈리네요. 개념이 부족한건지, Edge Case 다루는거라 많이 해봐야 느는건지.. 😭😭
- 확실히 Easy 난이도는 생각 하면 풀리거나, 해설 보면 이해가 바로 되는데, Medium 부터는 해설을 봐도 헷갈리네요.
'Coding Test > LeetCode' 카테고리의 다른 글
[Javascript] (LeetCode) 217. Contains Duplicate (Easy) (0) | 2022.07.24 |
---|---|
[Javascript] (LeetCode)122. Best Time to Buy and Sell Stock II (Medium) (0) | 2022.07.22 |
[Javascript] (LeetCode)121. Best time to buy and sell stock (Easy) (0) | 2022.07.21 |
[Javascript] (LeetCode) 26. Remove Duplicates from Sorted Array (Easy) (0) | 2022.07.20 |
[Javascript] LeetCode 876. Middle of the Linked List (0) | 2022.07.14 |
[Javascript] LeetCode 557. Reverse Words in a String III (0) | 2022.07.13 |
[Javascript] LeetCode 344. Reverse String (0) | 2022.07.13 |
[Javascript] LeetCode 167. Two Sum II - Input Array Is Sorted (0) | 2022.07.13 |
댓글