Cosen95 / js_algorithm

🏂js数据结构与算法 系统学习
36 stars 10 forks source link

反转链表 II #20

Open Cosen95 opened 4 years ago

Cosen95 commented 4 years ago

leetcode: https://leetcode-cn.com/problems/reverse-linked-list-ii/

Cosen95 commented 4 years ago

编码实现

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @param {number} m
 * @param {number} n
 * @return {ListNode}
 */
var reverseBetween = function(head, m, n) {
    let pre, cur, leftHead;
    const dummy = new ListNode();
    dummy.next = head;
    let p = dummy;
    for (let i = 0; i < m-1; i++) {
        p = p.next;
    }
    leftHead = p;
    let start = leftHead.next;
    pre = start;
    cur = pre.next;
    for (let i = m; i < n;i++) {
        let next = cur.next;
        cur.next = pre;
        pre = cur;
        cur = next;
    }
    leftHead.next = pre;
    start.next = cur;
    return dummy.next;
};