leetcode -Reverse Linked List II
2013-11-25 22:24 张汉生 阅读(171) 评论(0) 编辑 收藏 举报
1 class Solution { 2 public: 3 ListNode *reverseBetween(ListNode *head, int m, int n) { 4 // IMPORTANT: Please reset any member data you declared, as 5 // the same Solution instance will be reused for each test case. 6 if (n-m<1 || head==NULL) 7 return head; 8 int size = 0; 9 ListNode* ltail =NULL; 10 int i = 0; 11 ListNode * itr = head, * last = NULL, *rhead; 12 while (itr!=NULL){ 13 ListNode * next = itr->next; 14 i++; 15 if (i==m){ 16 ltail = last; 17 rhead = itr; 18 } 19 if (i>m && i<=n){ 20 itr->next = last; 21 } 22 if (i==n){ 23 rhead->next = next; 24 if (ltail!=NULL){ 25 ltail->next = itr; 26 return head; 27 } 28 else return itr; 29 } 30 last = itr; 31 itr = next; 32 } 33 return NULL; 34 } 35 };