var hasCycle = function(head) { let slow = head let fast = head while(fast?.next) { slow = slow.next fast = fast.next.next if(slow === fast) { return true } } return false};
var reverseBetween = function(head, left, right) { if(left === right) return head let dummy = new ListNode(null, head) let past = dummy for(let i = 1; i < left; i++) { past = past.next } let current = past.next let prev = null for(let i = left; i<= right;i++) { let temp = current.next current.next = prev prev = current current = temp } past.next.next = current past.next = prev return dummy.next};
var partition = function(head, x) { const beforeHead = new ListNode(null) const afterHead = new ListNode(null) let before = beforeHead let after = afterHead while(head) { if(head.val < x) { before.next = head before = before.next } else { after.next = head after = after.next } head = head.next } after.next = null before.next = afterHead.next return beforeHead.next};