class Solution {
public:
ListNode* reverseBetween(ListNode* head, int m, int n) {
ListNode * newHead = new ListNode(0);
newHead->next = head;
//前序节点
ListNode * pre = newHead;
//当前节点
ListNode * cur = head;
//寻找当前m节点位置
for (int i = 1;i<m;i++)
{
pre = cur;
cur = cur->next;
}
//开始旋转
for (int i = m;i<n;i++)
{
ListNode * temp = cur->next;
cur->next = temp->next;
temp->next = pre->next;
pre->next = temp;
}
//去除构造的第一个节点,比较简单指针指向下个位置就OK
return newHead->next;
}
};
链表内指定区间反转
最新推荐文章于 2024-02-14 14:09:57 发布