[LeetCode] 92. Reverse Linked List II
2017-07-10 20:46
302 查看
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.
![](https://img-blog.csdn.net/20170710204633628?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2FpX2o=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
For example:
Given 1->2->3->4->5->NULL, m = 2 and n = 4,
return 1->4->3->2->5->NULL.
class Solution { public: ListNode* reverseBetween(ListNode* head, int m, int n) { if (head == nullptr || head->next == nullptr || m == n) return head; if (m != 1) { ListNode *p = head; for (m--, n--; m > 1; m--, n--) p = p->next; p->next = reverseBetween(p->next, m, n); return head; } else { ListNode *pend = head; ListNode *prev = nullptr; ListNode *cur = head; for (int i = 1; i < n; i++) { ListNode *tmp = cur->next; cur->next = prev; prev = cur; cur = tmp; } ListNode *trail = cur->next; cur->next = prev; pend->next = trail; return cur; } } };
相关文章推荐
- [leetcode] 92. Reverse Linked List II 解题报告
- Leetcode 92. Reverse Linked List II
- LeetCode *** 92. Reverse Linked List II
- leetcode 92. Reverse Linked List II
- Leetcode 92. Reverse Linked List II
- leetcode:92. Reverse Linked List II(Java)解答
- [Leetcode] 92. Reverse Linked List II
- [leetcode] 【链表】92. Reverse Linked List II
- [LeetCode] 92. Reverse Linked List II
- LeetCode - 92. Reverse Linked List II
- [leetcode] 92. Reverse Linked List II
- LeetCode --- 92. Reverse Linked List II
- LeetCode 92. Reverse Linked List II
- [Leetcode]92. Reverse Linked List II
- Leetcode 92. Reverse Linked List II 翻转链表2 解题报告
- LeetCode 92. Reverse Linked List II
- [LeetCode] 92. Reverse Linked List II
- 【LeetCode】92. Reverse Linked List II 解法及注释
- 【leetcode】92. Reverse Linked List II
- LeetCode 92. Reverse Linked List II