从尾到头打印单链表。
分析:利用递归的思想,依次访问到每一个结点,递归的出口为NULL. 然后依次打印就能逆序得出链表。
代码如下:
void LinkListReversePrint(LinkNode* head) {
if(head == NULL) {
//空链表
return;
}else{
LinkListReversePrint(head->next);
}
printf("[%c|%p] ",head->data,head);
}
测试代码:
void TestReversePrint() {
TEST_HEADER;
LinkNode* head;
LinkListInit(&head);
LinkListPushBack(&head , 'a');
LinkListPushBack(&head , 'b');
LinkListPushBack(&head , 'c');
LinkListPushBack(&head , 'd');
LinkListPushBack(&head , 'e');
LinkListPrintChar(head , "逆序打印链表");
LinkListReversePrint(head);
}