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; };