长沙模板建站欢迎咨询,跨境电商好做吗,做门户网站有前途吗,哪些网站能够免费做公考题给你单链表的头指针 head 和两个整数 left 和 right #xff0c;其中 left right 。请你反转从位置 left 到位置 right 的链表节点#xff0c;返回 反转后的链表 。
示例 1#xff1a; 输入#xff1a;head [1,2,3,4,5], left 2, right 4
输出#xff1a;[1,4,3,…给你单链表的头指针 head 和两个整数 left 和 right 其中 left right 。请你反转从位置 left 到位置 right 的链表节点返回 反转后的链表 。
示例 1 输入head [1,2,3,4,5], left 2, right 4
输出[1,4,3,2,5]示例 2
输入head [5], left 1, right 1
输出[5]题目分析
. - 力扣LeetCode
代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* reverseBetween(ListNode* head, int left, int right) {ListNode *pre new ListNode(0,head); //伪头节点ListNode * reversePre pre; int count 1;//找到反转区间头节点的上一个节点while(count left){reversePre reversePre - next;count;}ListNode * reverseHead reversePre - next; //获取反转区间头节点//反转区间ListNode * last nullptr;ListNode * cur reverseHead;ListNode * next;while(countright){next cur - next;cur - next last;last cur;cur next;count;}//重新拼接reversePre-next last;reverseHead-next cur;return pre-next;}
};