需求描述:给出一个单链表,实现逆序打印链表(要求:不改变单链表数据结构,采用递归方式)typedef struct LinkNode { int val; struct LinkNode* next; }LinkNode; // 创建单链表 void creatLinkList(LinkNode* head); // 逆序打印单链表 void linkListReversePrint(LinkNode* node); // int main() { // 创建单链表 LinkNode* head = (LinkNode*)malloc(sizeof(LinkNode)); if(head == NULL) {exit(-1);} head->next = NULL; LinkNode* curr = head; creatLinkList(curr); // 逆序打印单链表 linkListReversePrint(head->next); printf(" "); } #pragma mark - 创建单链表 void creatLinkList(LinkNode* head) { for(int i = 0;i < 5;i++) { LinkNode* node = (LinkNode*)malloc(sizeof(LinkNode)); if(node == NULL) {exit(-1);} node->val = 100 * (i + 1); node->next = head->next; head->next = node; head = head->next; } } #pragma mark - 逆序打印链表 要求不改变单链表数据结构,使用递归实现 void linkListReversePrint(LinkNode* node) { if(node != NULL) { if(node->next != NULL) { linkListReversePrint(node->next); //递归调用 } printf("%d ",node->val); } }