题解 | #链表内指定区间反转#
链表内指定区间反转
https://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @param m int整型
* @param n int整型
* @return ListNode类
*/
#include <stdbool.h>
struct ListNode* reverseBetween(struct ListNode* head, int m, int n ) {
// write code here
if(head->next==NULL||head==NULL||m==n)
return head;
int a[1000],i=1;
struct ListNode* p=head;
while(p->next!=NULL){
a[i]=p->val;
i++;
p=p->next;
}
a[i]=p->val; //a数组中记载了该单链表的值
p=head;
int e=0;
i=n;
while(true){
e++;
if(e>=m){
while(i>=m){
p->val=a[i];
i--;
p=p->next;
}
return head;
}
p=p->next;
}
return head;
}


