首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; };
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; };
admin
2019-03-29
106
问题
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:
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
程序员面试
相关试题推荐
TheUnitedStatesInterstateHighwaySystemisaninfrastructurefeatofunprecedentedproportions.Notonlydoesitjoinallfi
WhenIseeclients,thisisthequestionthatI’maskedthemost.Ifyou’reinapublicplace,lookaround.【F1】Nearlyeveryone
TheSecondWorldWar,______theearlieronein1914,promptedpublicconcernaboutthephysicalandintellectualwell-beingoft
Inthissection,youareaskedtowriteanessaybasedonthefollowinginformation.Makecommentsandexpressyourownopinion.
求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
.net中读写数据库需要用到哪些类?他们的作用
ASP.NET与ASP相比,主要有哪些进步?
在Excel中,公式SUM(C2:C6)的作用是()。A.求C2到C6这五个单元格数据之和B.求C2和C6这两个单元格数据之和C.求C2和C6两单元格的比值D.以上说法都不对
企业战略数据模型可分为两种类型:(35)描述日常事务处理中的数据及其关系;(36)描述企业管理决策者所需信息及其关系。35
若系统中存在n个等待事务Ti(i=0,1,2,…,n-1),其中:T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Ti正等待被Ti+1锁住的数据项Ai+1,…,Tn-1正等待被T0锁住的数据项A0,则系统处于___________状
随机试题
义务教育是一种公共事业,属于国民教育范畴。这说的是义务教育具有()
神经损伤与手畸形的关系中,下列哪些是正确的
(2009年)图示四个悬臂梁中挠曲线是圆弧的为()。
生育保险的保障对象必须具备()的条件
下列属于时点数列的有()。
一般资料:马某,女性,23岁,个体商贩。案例介绍:马某三天前不明原因突然情绪激动,不停地说话,哭泣不止,被家属送来求助。家属反映的情况:马某家在农村,初中未毕业就开始务农。20岁结婚,近一年多在城里经营报刊亭。曾有癫痫病史,前天下午症状开始严重。下面
小王是某单位的接待人员,接到任务负责接待一个考察团。为了贯彻单位领导热情款待的精神,小王为客人点了一桌菜肴。当客人到齐后,小王发现有两位客人神情有些不悦。后来小王才知道,考察团中有两位客人是回族同胞,而小王点的菜肴中大半有猪肉。从现代社交礼仪的角度来看,小
按照行政层级划分出的我国政府机构的类型是()。
一个产品要畅销,产品的质量和经销商的诚信缺一不可。以下各项都符合题干的断定,除了:
在以下哪种情况下,对象不会解锁?( )
最新回复
(
0
)