-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathremoveNthNodeFromEndOfList.js
45 lines (38 loc) · 1.01 KB
/
removeNthNodeFromEndOfList.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
19. Remove Nth Node From End of List
Given the head of a linked list, remove the nth node from the end of the list and return its head.
Example 1:
Input: head = [1,2,3,4,5], n = 2
Output: [1,2,3,5]
Example 2:
Input: head = [1], n = 1
Output: []
Example 3:
Input: head = [1,2], n = 1
Output: [1]
*/
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 resultArr = []
while (head) {
resultArr.push(head.val)
head = head.next
}
let newList = new ListNode()
let p = newList
for (let i = 0; i < resultArr.length; i++) {
if (i === resultArr.length - n) continue
p.next = new ListNode(resultArr[i])
p = p.next
}
return newList.next
};
console.log(removeNthFromEnd({val: 1, next: { val: 2, next: { val: 3, next: { val: 4, next: { val: 5, next: null }}}}}, 2))