单链表如何倒置?
单链表原地置逆,就是把单链表原地倒置,算法该怎么写那?
/*对单链表实现就地逆置*/ #include "stdlib.h" #include "stdio.h" struct LNode { int data; struct LNode *next; }; typedef struct LNode node; typedef node *LinkList;
void Inverse(LinkList L) { LinkList ptr,head,tail; int num,i; tail=(LinkList)malloc(sizeof(node)); tail->next=NULL; ptr=tail; printf("\n请输入5个数据:"); for(i=0;i<=4;i++) { scanf("%d",&num); ptr->data=num; head=(LinkList)malloc(sizeof(node)); head->next=ptr; ptr=head; } ptr=ptr->next; printf("逆置后为:"); while(ptr!=NULL) { printf("%d ",ptr->data); ptr=ptr->next; } printf("\n"); } void main() { LinkList L; Inverse(L); }