题解 | #链表内指定区间反转#
链表内指定区间反转
https://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c
/*
* 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 ) {
if(m == n) return head;
let node = new ListNode();
node.next = head;
let temp = node;
let mNodePre;
let i = 1;
while(temp){
if(i <= m) {
mNodePre = temp;
temp = temp.next;
}else if(i <= n){
//1 3 2 4 5
let pre = mNodePre.next;
let next = temp.next;
temp.next = next.next;
next.next = pre;
mNodePre.next = next;
if(i == n) break;
}
i++;
}
return node.next;
}
module.exports = {
reverseBetween : reverseBetween
};
查看11道真题和解析