首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; };
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; };
admin
2019-03-29
101
问题
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:
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://jikaoti.com/ti/Vfg7FFFM
0
程序员面试
相关试题推荐
AnE-mailtoaRoommate写给室友的邮件YouaregoingtostudyabroadandshareanapartmentwithJohn,alocalstudent.Writehimane-
[A]Forcrowdfundingtowork,theprojectneedstocapturethepublicimagination.Andnotallacademicsarecomfortablewithse
求最大连续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)
触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
bob的电子邮件转发到wanglong@sina.com。
邮件的删除。
在即时通讯工具MSN中,从当前界面开始,把自己的邮箱注册为“Passport”,已知邮箱地址为:ccty@163.com,密码设置为116116,密码提示问题为:你最喜欢的历史人物?毛泽东,注册检查框内的字符按照图片上给的输入,字符输入区分大小写,其余选项
在Excel中,函数ABS(ROUND(-1.478,2))的计算结果是()。A.-1.478B.1.48C.-1.48D.1.5
改错题【要求】1)打开“T盘”中“P2vbp”文件,按参考界面形式编辑窗体界面,改正程序中的错误后,直接保存所有文件;2)改错时,不得增加或删除语句,但可适当调整语句位置。【题目】本程序的功能是生成由n(n通过InputBox函数输入)个3位升序
阅读以下关于税务管理系统方面的叙述,回答问题1和问题2。近年来,我国电子税务工作取得了长足进步,特别是2000年,税务管理信息化工作在国务院领导的直接关心和国家税务总局党组的具体指挥下,以五省四市“金税工程”的顺利开通、平稳运行为标志,取得了突破性
随机试题
关于中肾的发生哪项错误()
下列属于积分式测量仪器的有________。
覆盖全球最大的计算机网络是______。
关于乳头状癌甲状腺的叙述,下列不正确的是
A.噬菌体病毒B.反转录病毒C.末端转移酶D.端粒酶E.反转录酶属RNA病毒的是
体重超过下列哪项的胎儿称为巨大儿
A.尾蚴B.胞蚴C.囊蚴D.包囊E.卵囊矛形歧腔吸虫的感染阶段是
田野:小麦:麦粒()
课后作业布置体现“差异性原则”。简述你对“差异性原则”的理解,并从作业类型、作业难度和作业量三个方面举例说明如何布置作业。
下列年份中,存在不合格品企业数占国家监督抽查企业数的比例最大的年份是()与2000年相比,2005年产品合格率()
最新回复
(
0
)