#include <stdio.h>
#include <stdlib.h>
typedef struct ListNode
{
int data;
struct ListNode* next;
}ListNode;
ListNode* creat_list(int *arr,int n)
{
ListNode *La = (ListNode *)malloc(sizeof(ListNode));
La -> data = arr[0];
La -> next = NULL;
ListNode *r = La;
for(int i = 1;i<n;i++)
{
ListNode *s = (ListNode*)malloc(sizeof(ListNode));
s -> data = arr[i];
s -> next = NULL;
r -> next = s;
r = s;
}
return La;
}
void Swap(int *a,int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void SwapNode(ListNode *La)
{
ListNode *pa = La, *pb = La -> next;
Swap(&pa->data,&pb->data);
while(pb -> next != NULL)
{
pa = pb;
pb = pb -> next;
}
Swap(&pa->data,&pb->data);
}
void Printlist(ListNode *La)
{
ListNode *pa = La;
while(pa)
{
printf("%d ",pa -> data);
pa = pa -> next;
}
}
int main() {
int n = 0;
scanf("%d",&n);
int arr[n];
for(int i=0; i<n; i++)
{
scanf("%d",&arr[i]);
}
ListNode* La = creat_list(arr,n);
SwapNode(La);
Printlist(La);
return 0;
}
主要就是链表的基本定义,构造,添加元素,输出。

京公网安备 11010502036488号