본문 바로가기
Coding Test/LeetCode

[Javascript] (LeetCode) 19. Remove Nth Node From End of List (Medium)

by Chaedie 2022. 7. 14.
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 해준다. (이거 다른 사람 풀이 보고 따라한거라 지금도 헷갈림)
  • 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 부터는 해설을 봐도 헷갈리네요.

댓글