将一个链表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
};