博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题6:从尾到头打印链表
阅读量:5215 次
发布时间:2019-06-14

本文共 829 字,大约阅读时间需要 2 分钟。

一.题目

 输入一个链表的头结点,从尾到头反过来打印出每个结点的值。

二.思路

本题有两种方式解决:

  1. 递归

但需要注意的是:当链表非常长的时候,就会导致函数调用的层级很深,从而有可能导致函数调用栈溢出。显然用栈基于循环实现代码的鲁棒性更好一些。

三.代码

  1. 栈实现
void PrintListReversingly_Iteratively(ListNode* pHead){    std::stack
nodes; ListNode* pNode = pHead; while(pNode != nullptr){ nodes.push(pNode); pNode = pNode->m_pNext; } while(!nodes.empty()){ pNode = nodes.top(); printf("%d\t",pNode->m_nValue); nodes.pop(); }}

    2. 递归实现

void PrintListReversingly_Iteratively(ListNode* pHead){        ListNode* pNode = pHead;    if(pNode != nullptr){        if(pNode->m_pNext != nullptr)            PrintListReversingly_Iteratively(pNode->m_pNext);        printf("%d\t",pNode->m_nValue);    }}

 

四.本题考点

  1. 考查应聘者对单向链表的理解和编程能力
  2. 考查应聘者对循环、递归和栈3个相互关联的概念的理解

转载于:https://www.cnblogs.com/ovs98/p/9872006.html

你可能感兴趣的文章
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
opencv安装配置
查看>>
JAVA-初步认识-第六章-面向对象(举例)
查看>>
js合并数组
查看>>
cNoteSetCursor_命令窗口光标设置
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
Benelux Algorithm Programming Contest 2014 Final(第二场)
查看>>
随机变量的期望为什么把不是自己密度函数当成自己的权重来求期望呢?
查看>>
6-1 并行程序模拟 uva210
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>