/*单向链表的反向输出*/
#include
#include
#define MAX_LEN 10
typedef struct _LINKNODE
{
int value;
struct _LINKNODE *next;
}LINKNODE;
/*链表逆置的原理就是前插,把原链表中的元素一个一个的前插到新的链表中*/
LINKNODE* revertLink(LINKNODE* head)
{
LINKNODE* revert = NULL;
LINKNODE* temp = NULL;
while(head != NULL)
{
temp = head->next;
head->next = revert;
revert = head;
head = temp;
}
return revert;
}
void main()
{
int array[MAX_LEN] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
LINKNODE* head = NULL;
LINKNODE* curNode = NULL;
LINKNODE* temp = NULL;
LINKNODE* revert = NULL;
for(int i=0; i
temp = (LINKNODE*) malloc(sizeof(LINKNODE));
temp->value = array[i];
temp->next = NULL;
if(head == NULL)
{
head = temp;
curNode = temp;
}
curNode->next = temp;
curNode = curNode->next;
}
printf("初始化后的链表是:\n");
curNode = head;
while(curNode != NULL)
{
printf("%d ", curNode->value);
curNode = curNode->next;
}
revert = revertLink(head);
printf("\n逆置后链表是:\n");
while(revert != NULL)
{
printf("%d ", revert->value);
revert = revert->next;
}
printf("\n");
}
看看吧...