要求空间复杂度为0(1),就要放弃再建一个链表用头插法放置的思想,就地使用空瓶法转换。
代码如下
#include<stdio.h>
void reserve(int a[],int length)
{
int t;
for(int i=0;i<=length/2;i++){
t = a[i];
a[i] = a[length-i-1];
a[length-i-1] = t;
}
}
int main(){
int a[]={1,2,3,4,5};
int length=sizeof(a)/sizeof(a[0]);
printf("原序数组为:");
for(int i=0;i<=length-1;i++){
printf("%d",a[i]);
}
reserve(a,length);
printf("倒序数组为:");
for(int i=0;i<=length - 1;i++){
printf("%d",a[i]);
}
return 0;
}