您当前的位置:首页 > 计算机 > 编程开发 > C语言

从尾到头反向输出单链表每个节点的值

时间:01-03来源:作者:点击数:

问题描述:

设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。

问题解答:

考虑到从头到尾输出比较简单,本题的思路很自然地联系到借助上题链表逆置的方法来实现,改变链表的方向,然后就可以从头到尾实现反向输出了。

此外,本题还可以借助一个栈来实现,每经过一个结点时,将该结点放入栈中。在遍历完整个链表后,再从栈顶开始输出结点值即可。

既然能用栈的思想解决,也就很自然地联想到了用递归来实现,每当访问一个结点时,先递归输出它后面的结点,再输出该结点自身,这样链表就反向输出了。

如下图所示:

本题代码如下:

void R_Print(LinkList L){
    //从尾至头输出单链表L中每个结点的值
    if(L->next!=NULL){
        R_Print (L->next) ;  //递归
    } //if
    print (L->data) ;  //输出函数
}

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门