咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

递归一定要设置明确的结束条件,如果不设置限制条件,递归就是一个死循环。

:1.不生成新链表,利用打印函数实现逆序输出

PrintList_Recursion这个打印数据的函数,在被调用时,原函数暂停,开始执行被调用的函数,被调用的函数执行完毕后,才会继续执行原函数。利用这个原理,实现数据的逆序输出


:2.用递归的方法生成新的逆序链表

生成新的链表,创建一个全局变量

Node *new_Head;//全局变量,存储新的链表的头指针

Node* Reverse_Recursion(Node* head_Pointer){ if(NULL == head_Pointer->pNext){ //递归退出条件,指针指向最后一个节点 new_Head = head_Pointer; //新链表的头指针指向旧链表最后一个节点 return new_Head; } Reverse_Recursion(head_Pointer->pNext); //当head_Pointer=150时 head_Pointer->pNext->pNext = head_Pointer;//节点250的pNext指针指向节点150 head_Pointer->pNext = NULL; return new_Head; }

int main(){ Node* pHead = NULL; pHead = Insert_Tail(pHead,1);//尾插法增加节点 pHead = Insert_Tail(pHead,2); pHead = Insert_Tail(pHead,3); pHead = Insert_Tail(pHead,4); pHead = Insert_Tail(pHead,5); pHead = Insert_Tail(pHead,6); pHead = Insert_Tail(pHead,7); pHead = Insert_Tail(pHead,8); pHead = Insert_Tail(pHead,9); pHead = Insert_Tail(pHead,10); pHead = Insert_Tail(pHead,11); pHead = Insert_Tail(pHead,12); PrintList(pHead);//打印旧链表数据 new_Head=Reverse_Recursion(pHead); PrintList(new_Head);//打印逆序生成的新链表数据 return 0; }