将一个链表m位置到n位置之间的区间反转,要求时间复杂度 ,空间复杂度 。
例如:
给出的链表为1→2→3→4→5→NULL,
返回1→4→3→2→5→NULL.
注意:
给出的m,n满足以下条件:
链表长度1≤m≤n≤链表长度

/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */

/**
  * 
  * @param head ListNode类 
  * @param m int整型 
  * @param n int整型 
  * @return ListNode类
  */
function reverseBetween( head ,  m ,  n ) {
    // write code here
    var top = {}
    top.next = head
    var pre = top
    var cur = head
    for(var i=0;i<m-1;i++){
        pre = pre.next
        cur = cur.next
    }
    for(var j=0;j<n-m;j++){
        var temp = cur.next
        cur.next = temp.next
        temp.next = pre.next
        pre.next = temp
    }
    return top.next
}
module.exports = {
    reverseBetween : reverseBetween
};