首页 > 其他 > 详细

[LeetCode] Reverse Linked List II

时间:2015-09-02 01:49:43      阅读:250      评论:0      收藏:0      [点我收藏+]

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.
 1 class Solution {  
 2 public:
 3     ListNode* reverseBetween(ListNode* head, int m, int n) {
 4         ListNode* new_head = new ListNode(0);
 5         new_head -> next = head;
 6         ListNode* pre = new_head;
 7         for (int i = 0; i < m - 1; i++)
 8             pre = pre -> next;
 9         ListNode* cur = pre -> next;
10         for (int i = 0; i < n - m; i++) {
11             ListNode* move = cur -> next; 
12             cur -> next = move -> next;
13             move -> next = pre -> next;
14             pre -> next = move;
15         }
16         return new_head -> next;
17     }
18 };

 

[LeetCode] Reverse Linked List II

原文:http://www.cnblogs.com/jcliBlogger/p/4777400.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!