题目
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。
输入:head = [1,2,3,4,5], left = 2, right = 4
输出:[1,4,3,2,5]
思路
有手就行
代码
ListNode* reverseBetween(ListNode* head, int left, int right)
{
ListNode* tempNode = new ListNode(-1);
tempNode->next = head;
ListNode* pre = tempNode;
for(int i=0;i<left-1;i++)
{
pre = pre->next;
}
ListNode *cur = pre->next;
ListNode *next = nullptr;
for(int i=0;i<right-left;i++)
{
next = cur->next;
cur->next = next->next;
next->next = pre->next;
pre->next = next;
}
return tempNode->next;
}