首页 > 其他 > 详细

递归的本质是一个栈结构(从尾到头打印链表)

时间:2020-06-08 17:34:13      阅读:55      评论:0      收藏:0      [点我收藏+]

题目:输入链表头,从尾到头打印该单向链表

 

思路:

1、确定是否允许修改输入,一般都是不允许修改输入的(不能将链表翻转)

2、最后遍历到的反而先输出,最先遍历到的最后输出,考虑到栈结构。C语言中没有直接使用栈的函数

3、递归在本质上是一个栈结构,可以使用递归

 

写法(C语言):

/*
* 链表格式
*/
typedef struct List{ int i_Key; struct List *pt_Next; }T_List, *PT_List; PT_List g_ptListHead; /*
* 反向打印链表数据
*/
void ShowList(PT_List pt_cur) { if (pt_cur != NULL) { if (pt_cur->pt_Next != NULL) {
            /* 递归调用 */ ShowList(pt_cur
->pt_Next); } printf("%d\n", pt_cur->i_Key); } }

注意:递归调用如果深度太深,会占用很多栈中的空间资源(函数调用保存现场)。

 

递归的本质是一个栈结构(从尾到头打印链表)

原文:https://www.cnblogs.com/lcsgj/p/13066617.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!