线性表的就地逆置
#include <stdio.h>
#include <stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}Node;
int main()
{
#include <stdio.h>
#include <stdlib.h>
typedef struct Node{
int data;
struct Node* next;
}Node,*ListNode;
int main()
{
int n;
scanf("%d",&n);
int A[n];
for(int i=0;i<n;i++)
{
scanf("%d",&A[i]);
}
for(int i=n-1;i>=0;i--)
{
printf("%d ",A[i]);
}
printf("\n");
ListNode temp,head;
temp=(ListNode)malloc(sizeof(Node));
head=temp;
int j=0;
for(j=0;j<n-1;j++)
{
ListNode p=(ListNode)malloc(sizeof(Node));
temp->next=p;
temp=p;
//free(p);不能free,
}
temp->next=NULL;
temp=head;
for(int i=n-1;i>=0;i--,temp=temp->next)
{
temp->data=A[i];
}
while(head)
{
printf("%d ",head->data);
head=head->next;
}
free(head);
free(temp);
return 0;
}