JS力扣刷题 92. 反转链表 II

var reverseBetween = function(head, left, right) {
    let pre = new ListNode(0, head);
    head = pre;
    //找到left的前一个
    for (let i = 0; i < left - 1; ++i) {
        pre = pre.next;
    }
    let p = pre.next;
    //在p之前不断的头插法
    for(let i = 0; i < right - left; i++){
        let q = p.next;
        p.next = q.next;
        q.next = pre.next;//不是 q.next = p
        pre.next = q;
    }
    return head.next;
};

你可能感兴趣的:(力扣刷题,js刷题,链表,leetcode,javascript)