leetcode第九十二题_反转链表2
难度:Medium
掌握程度:Low
var reverseBetween = function(head, m, n) {
#和反转列表1一样设置3个指针
let prev = null;
let curr = head;
let next = head;
for(let i = 1;i<m;i++){
prev = curr;
curr = curr.next;
}
#另外设置2个固定指针
let prev2 = prev;
let curr2 = curr;
for(let i=m;i<=n;i++){
next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
#这里是防止m=1,n=5的情况,也就是说是从最开头开始的
if(prev2 !== null){
prev2.next = prev;
}else{
head = prev;
}
curr2.next = curr;
return head;
};