reverse linked list2

 1 class Solution {
 2 public:
 3     ListNode *reverseBetween(ListNode *head, int m, int n) {
 4         // Start typing your C/C++ solution below
 5         // DO NOT write int main() function
 6         ListNode * root = new ListNode(0);
 7         root->next = head;
 8         ListNode* ptr = root;
 9         for(int i=1;i<m;i++)
10             ptr = ptr->next;
11             
12         ListNode * p = ptr->next;
13         ListNode * q;
14         for(int i=1;i<=n-m;i++)
15         {
16             q = ptr->next;
17             ptr->next = p->next;
18             p->next = ptr->next->next;
19             ptr->next->next = q;   
20             
21         }
22         return root->next;
23         
24         
25         
26     }
27 };

 

posted on 2013-09-03 14:40  jumping_grass  阅读(161)  评论(0)    收藏  举报

导航