[LeetCode92]Reverse Linked List II
Posted zhangbaochong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode92]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
.
反转m到n处的单链表
The basic idea is as follows:
(1) Create a new_head
that points to head
and use it to locate the immediate node before them
-th (notice that it is 1
-indexed) node pre
;
(2) Set cur
to be the immediate node after pre
and at each time move the immediate node after cur
(named move
) to be the immediate node after pre
. Repeat it for n - m
times.
分类:Linked List
代码:
class Solution { public: ListNode* reverseBetween(ListNode* head, int m, int n) { ListNode* new_head = new ListNode(0); new_head -> next = head; ListNode* pre = new_head; for (int i = 0; i < m - 1; i++) pre = pre -> next; ListNode* cur = pre -> next; for (int i = 0; i < n - m; i++) { ListNode* move = cur -> next; cur -> next = move -> next; move -> next = pre -> next; pre -> next = move; } return new_head -> next; } };
以上是关于[LeetCode92]Reverse Linked List II的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode92]Reverse Linked List II
#Leetcode# 92. Reverse Linked List II
Leetcode 92. Reverse Linked List II
leetcode.92. Reverse Linked List II