19. Remove Nth Node From End of List
- 링크드 리스트에서 끝에서
n
번째 노드를 삭제하는 문제이다. 단 한 번 순회하여야 하고, 전체길이를 모른채n
번째 노드를 삭제하기 위해 두 포인터를 이용한다.
Input: head = [1,2,3,4,5], n = 2
Output: [1,2,3,5]
/**
* @param {ListNode} head
* @param {number} n
* @return {ListNode}
*/
var removeNthFromEnd = function(head, n) {
let dummy = new ListNode(0);
dummy.next = head;
let first = dummy;
let second = dummy;
for (let i = 0; i <= n; i++) {
second = second.next;
}
while (second !== null) {
first = first.next;
second = second.next;
}
first.next = first.next.next
return dummy.next;
};