题解 | #牛牛的链表交换#
牛牛的链表交换
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; }