Delete the Middle Node of a Linked List LeetCode solution in JavaScript

1
/**
2
* Definition for singly-linked list.
3
* function ListNode(val, next) {
4
* this.val = (val===undefined ? 0 : val)
5
* this.next = (next===undefined ? null : next)
6
* }
7
*/
8
/**
9
* @param {ListNode} head
10
* @return {ListNode}
11
*/
12
// Two Pointer: Fast & Slow | O(N) | O(1)
13
var deleteMiddle = function (head) {
14
if (!head.next) return null;
15

16
let prev = head;
17
let slow = head;
18
let fast = head.next;
19
let size = 2;
20

21
while (fast && fast.next) {
22
prev = slow;
23
slow = slow.next;
24
fast = fast.next.next;
25
size += fast ? 2 : 1;
26
}
27

28
if (size % 2 === 0) slow.next = slow.next.next;
29
else prev.next = slow.next;
30

31
return head;
32
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0