링크드리스트의 head
가 주워지고 head로부터 n
번째 노드를 제거하는 문제
/**
* 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) {
const getSize = (node) => {
if (!node) return 0
return getSize(node.next) + 1
}
let nodeSize = getSize(head)
let header = new ListNode(),
temp = null
header.next = head
temp = header
while (temp?.next) {
if (nodeSize-- === n) {
temp.next = temp.next.next
}
temp = temp.next
}
return header.next
}