LeetCode 92. 每日一题 · 春季-------week1 --- day1 ---LeetCode92. 反转链表 II P丹2
原题链接
中等
作者:
初静
,
2021-03-19 17:32:01
,
所有人可见
,
阅读 233
YXC题解
class Solution {
public:
ListNode* reverseBetween(ListNode* head, int left, int right) {
auto dummy = new ListNode(-1); //虚拟头节点(一般头结点可变或可不变的情况,我们这时可创建一个虚拟头结点)
dummy->next = head;
auto a = dummy;
for (int i = 0; i < left - 1; i ++) { //从dummy走left-1步,确定a的位置,a是left前的一个位置
a = a->next;
}
auto b = a->next, c = b->next;
for (int i = 0; i < right - left; i ++) { //
auto d = c->next;
c->next = b;
b = c, c = d;
}
a->next->next = c;
a->next = b;
return dummy->next; //返回的是真实的头结点
}
};