链接
思路把需要转置的部分放到数组里,转置之后再放回原链表
代码
class Solution {
public:
ListNode* reverseBetween(ListNode* head, int left, int right) {
vector nums;
ListNode* L=head;
for(int i=0;i//把需要转换的链表段提取出来
if(i>=left-1){
nums.push_back(L->val);
L=L->next;
}
else{
L=L->next;
}
}
int temp = 0;
for(int j=0;j//翻转数组
temp = nums[j];
nums[j] = nums[nums.size()-1-j];
nums[nums.size()-1-j] = temp;
}
int k = 0;
L = head;
for(int i=0;i//放回原链表
if(i>=left-1){
L->val=nums[k];
k++;
L=L->next;
}
else{
L=L->next;
}
}
return head;
}
};



