首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; };
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; };
admin
2019-03-29
149
问题
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
选项
答案
/////////////////////////////////////////////////////////////////////// // Print a list from end to beginning // Input: pListHead - the head of list /////////////////////////////////////////////////////////////////////// void PrintListReversely(ListNode* pListHead) { if(pListHead != NULL) { // Print the next node first if (pListHead->m_pNext != NULL) { PrintListReversely(pListHead->m_pNext); } // Print this node printf("%d", pListHead->m_nKey); } }
解析
这是一道很有意思的面试题。该题以及它的变体经常出现在各大公司的面试、笔试题中。
看到这道题后,第一反应是从头到尾输出比较简单。于是很自然地想到把链表中链接结点的指针反转过来,改变链表的方向。然后就可以从头到尾输出了。反转链表的算法详见本人面试题精选系列的第19题,在此不再细述。但该方法需要额外的操作,应该还有更好的方法。
接下来的想法是从头到尾遍历链表,每经过一个结点的时候,把该结点放到一个栈中。当遍历完整个链表后,再从栈顶开始输出结点的值,此时输出的结点的顺序已经反转过来了。该方法需要维护一个额外的栈,实现起来比较麻烦。
既然想到了栈来实现这个函数,而递归本质上就是一个栈结构。于是很自然的又想到了用递归来实现。要实现反过来输出链表,我们每访问到一个结点的时候,先递归输出它后面的结点,再输出该结点自身,这样链表的输出结果就反过来了。
转载请注明原文地址:https://kaotiyun.com/show/rRmZ777K
0
程序员面试
相关试题推荐
Americanschoolsaren’texactlyfrozenintime,butconsideringthepaceofchangeinotherareasoflife,ourpublicschoolste
Americanschoolsaren’texactlyfrozenintime,butconsideringthepaceofchangeinotherareasoflife,ourpublicschoolste
[A]Theperson-skillsmatchapproachtoselection[B]Theimpactsofbadselectiondecisions[C]Theimportanceofstructu
[A]Theperson-skillsmatchapproachtoselection[B]Theimpactsofbadselectiondecisions[C]Theimportanceofstructu
Writeanessaybasedonthefollowingoutline.Youshouldwriteabout150wordsontheANSWERSHEET.1.教师用课外时间给学生补课赚钱的现象
大整数数相乘的问题。
删除字符串中的数字并压缩字符串(神州数码以前笔试题),如字符串”abc123de4fg56”处理后变为”abcdefg”。注意空间和效率。(下面的算法只需要一次遍历,不需要开辟新空间,时间复杂度为O(N))
ASP.NET能在那些系统中运行?
随着网络信息技术的进步和社会信息化程度的不断提高,一个由庞大的网络产业带动,并导致整个经济社会产生巨大变革的数字经济时代已经离我们越来越近。目前,“数字化校园”、“数字企业”、“数字城市”等一系列项目快速上马,在这些项目中,信息的数字化与数字信息的网络传输
随机试题
设求a,b的值.
茯苓可主治除哪项外的病证
多层砌体房屋,其最主要的抗震措施是()。
按《水利工程建设程序管理暂行规定》的要求,水利工程建设程序的最后一环为()
在股份公司盈利分配顺序上,优先股票排在普通股票之前,但在破产清算时,普通股票排在优先股票之前。()
甲公司为增值税一般纳税人,2018年12月31日购入不需要安装的生产设备一台,当日投入使用。该设备价款为360万元,增值税税额为57.6万元,预计使用寿命为5年,预计净残值为零,采用年数总和法计提折旧。该设备2019年应计提的折旧额为()万元。
中国共产党的根本路线是群众路线。()
下列给定的关键字输入序列中,不能生成如下二叉排序树的是()。
Whetherwewantitornotweareallgreedybynature.Fromthemomentweare【C1】______andtothelastdayofourlifewe【C2】___
AsufferfromastrokeBwillbeaffectedCchangetheirlifestylesDwilltakeplaceEoccursatthebackofhis/herbrainFco
最新回复
(
0
)