Leetcode 92: Reverse Linked List II
Here is my leetcode solution in 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} left
* @param {number} right
* @return {ListNode}
*/
var reverseBetween = function (head , left , right ) {
let currPos = 1 ;
let currNode = head ;
let startNode = head ;
let endNode = null ;
while (currPos < left ) {
startNode = currNode ;
currNode = currNode .next ;
currPos ++ ;
}
let newList = null ;
let tail = currNode ;
while (currPos <= right ) {
const next = currNode .next ;
currNode .next = newList ;
newList = currNode ;
currNode = next ;
currPos ++ ;
}
startNode .next = newList ;
tail .next = currNode ;
if (left > 1 ) {
return head ;
}
return newList ;
};
Published on
Previous post: Ayden & Simba go to the Moon