您的位置:首页 > 其它

leetcode - 92.Reverse Linked List II

2017-03-18 17:08 375 查看

Reverse Linked List II

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

For example:

Given
1->2->3->4->5->NULL
, m =
2
and n =
4
,

return
1->4->3->2->5->NULL
.

Note:

Given m, n satisfy the following condition:

1 ≤ m ≤ n ≤ length of list.

Solution:

public ListNode reverseBetween(ListNode head, int m, int n) {
if (head == null)
return null;
ListNode root = new ListNode(0);
root.next = head;
ListNode pre = root;
for (int i = 0; i < m - 1; i++)
pre = pre.next;

ListNode start = pre.next;
ListNode then = start.next;

for (int i = 0; i < n - m; i++) {
start.next = then.next;
then.next = pre.next;
pre.next = then;
then = start.next;
}

return root.next;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode