[Leetcode] 19. Remove Nth Node From End of List โ
Problem โ
๋งํฌ๋๋ฆฌ์คํธ์ head
๊ฐ ์ฃผ์์ง๊ณ head๋ก๋ถํฐ n
๋ฒ์งธ ๋
ธ๋๋ฅผ ์ ๊ฑฐํ๋ ๋ฌธ์
Solution โ
- ์ฌ๊ทํจ์๋ฅผ ์ด์ฉํด ์ฃผ์ด์ง ListNode์ ๊น์ด๋ฅผ ํ์ ํ๋ค.
- ๊น์ด๋ฅผ ์ด์ฉํด์ ์ ๊ฑฐํ ๋ฐ๋ก ์๊น์ง ์ด๋ํ๋ค.
- ์ ๊ฑฐํ๊ณ ์ ํ๋ ๋ ธ๋๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ ๊ฑฐํ ๋ ธ๋๊ฐ ๊ฐ๋ฅดํค๋ ๋ ธ๋๋ฅผ ๊ฐ๋ฅดํค๋๋ก ๋ง๋ ๋ค.
JS CODE โ
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) {
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
}