龙空技术网

C语言基础07:巧用递归算法实现链表逆序

电子秘探 338

前言:

此刻姐妹们对“递归实现逆序输出字符串c语言”都比较注意,咱们都想要学习一些“递归实现逆序输出字符串c语言”的相关文章。那么小编在网络上网罗了一些有关“递归实现逆序输出字符串c语言””的相关内容,希望小伙伴们能喜欢,咱们快快来学习一下吧!

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

: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;}

标签: #递归实现逆序输出字符串c语言 #c语言用递归法将数字逆序输出