92_ReverseLinkedListII - a920604a/leetcode GitHub Wiki
title: 92. Reverse Linked List II
tags:
- Linked List
categories: leetcode
comments: false
solution
class Solution {
public:
ListNode* reverse(ListNode * l, int r){
ListNode *pre = new ListNode(-1);
pre->next = l;
for(int i=0;i<r;++i){
ListNode *temp = l->next;
l->next = temp->next;
temp->next= pre->next;
pre->next = temp;
}
return pre->next;
}
ListNode* reverseBetween(ListNode* head, int left, int right) {
if(left ==1){
return reverse(head, right-1);
}
else{
head->next = reverseBetween(head->next, left-1, right-1);
}
return head;
}
};
analysis
- time complexity
O(n)
- space complexity
O(1)