题解 | #牛牛的链表交换#
牛牛的链表交换
https://www.nowcoder.com/practice/0e009fba6f3d47f0b5026b5f8b0cb1bc
#include <stdio.h>
#include<stdlib.h>
#include<assert.h>
typedef struct slist
{
int data;
struct slist* next;
}slist;
slist* buynode(int x)
{
slist* node=(slist*)malloc(sizeof(slist));
assert(node);
node->data=x;
node->next=NULL;
return node;
}
void pushlist(slist**pphead,int x)
{
assert(pphead);
slist* newnode=buynode(x);
if(*pphead==NULL)
{
*pphead=newnode;
}
else {
{
slist* ptail=*pphead;
while(ptail->next)
{
ptail=ptail->next;
}
ptail->next=newnode;
}
}
}
void slprint(slist* phead)
{
slist* pcur=phead;
while(pcur->next)
{
printf("%d ",pcur->data);
pcur=pcur->next;
}
printf("%d ",pcur->data);
}
int main()
{
int n=0;
scanf("%d",&n);
int arr[n];
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
int tmp=arr[0];
arr[0]=arr[1];
arr[1]=tmp;
int tem=arr[n-1];
arr[n-1]=arr[n-2];
arr[n-2]=tem;
slist* slist=NULL;
for(int i=0;i<n;i++)
{
pushlist(&slist, arr[i]);
}
slprint(slist);
return 0;
}