局部反转:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseBetween(ListNode* head, int m, int n) {
ListNode* newhead=(ListNode*)malloc(sizeof(ListNode));
newhead->next=head;
ListNode* start=newhead;
int flag=m;
while(m>1)
{
m--;
start=start->next;
}
ListNode *move=start->next;
ListNode *end=move;
int temp=1;
while(n>=flag)
{
n--;
if(temp)
{
temp--;
move=move->next;
}
else
{
end->next=move->next;
move->next=start->next;
start->next=move;
move=end->next;
}
}
return newhead->next;
}
};
本文介绍了一种局部反转链表的方法,实现了一个C++函数reverseBetween,该函数接收一个单链表的头节点以及两个整数m和n作为参数,将从第m个节点到第n个节点之间的链表部分进行反转。
291

被折叠的 条评论
为什么被折叠?



