92. Reverse Linked List II(js)

92. Reverse Linked List II

Reverse a linked list from position m to n. Do it in one-pass.

Note: 1 ≤ m ≤ n ≤ length of list.

Example:

Input: 1->2->3->4->5->NULL, m = 2, n = 4
Output: 1->4->3->2->5->NULL
题意:对链表从起始位置和终止位置进行翻转
代码如下:
/**
 * 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 start = new ListNode(-1);
    start.next=head;
    let cur=start;
    let pre,front,last;
    for(let i=1;i<=m-1;i++) cur=cur.next;
    pre=cur;
    last=cur.next;
    for(let i=m;i<=n;i++){
        cur=pre.next;
        pre.next=cur.next;
        cur.next=front;
        front=cur;
    }
    cur=pre.next;
    pre.next=front;
    last.next=cur;
    return start.next;
    
};

 

posted @ 2019-04-14 21:48  mingL  阅读(132)  评论(0编辑  收藏  举报