美文网首页
前端常见算法面试题之 - 从尾到头打印链表[JavaScript

前端常见算法面试题之 - 从尾到头打印链表[JavaScript

作者: 失落的感动GG | 来源:发表于2018-10-30 20:06 被阅读0次

题目描述

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

实现思路

前端工程师看到这个题目,直接想到的就是,写个while循环来遍历链表,在循环中把节点的值存储在数组中,最后在把数组倒序后,遍历数组打印每个值

如果这个题目这么简单,面试官也就不考了

如果面试官提要求说,不许使用数组的任何方法,你会怎么解决?

由于是链表,肯定要遍历。遍历的顺序是从头到尾,可输出的顺序却是从尾到头。

也就是先拿到的数据,最后一个输出。最后拿到的数据,第一个输出。有没有感觉跟栈的定义很像?栈就是“后进先出”,题目的要求也是。

而递归本质就是一个栈结构,所以我们用递归来实现:每次遍历时,先输出后面的节点,在输出当前节点

代码实现

function printListFromTailToHead(head) {
  if (head.next) {
    printListFromTailToHead(head.next);
  }

  console.log(head.val);
}

代码看起来很清爽,但是递归有个问题,当参数很大时,会导致循环调用层级很深,有可能导致调用栈溢出。后续再讨论如何优化。

相关文章

  • 2.3.3 链表

    面试题6:从尾到头打印链表 输入一个链表,从尾到头打印链表每个节点的值。

  • 前端常见算法面试题之 - 从尾到头打印链表[JavaScript

    题目描述 输入一个链表的头结点,从尾到头反过来打印出每个结点的值 实现思路 前端工程师看到这个题目,直接想到的就是...

  • 《剑指Offer》-Exercise(C语言)

    面试题4:二维数组中的查找 面试题6:从尾到头打印链表 单链表从尾到头打印(用栈或递归) 单链表结构 面试题7:重...

  • 从尾到头打印链表

    《剑指offer》面试题6:从尾到头打印链表 题目:输入一个链表的头节点,从尾到头反过来打印出每个节点的值。(链表...

  • LeetCode 面试题06. 从尾到头打印链表【剑指Offer

    LeetCode 面试题06. 从尾到头打印链表【剑指Offer】【Easy】【Python】【链表】 问题 力扣...

  • JZ-003-从尾到头打印链表

    从尾到头打印链表 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。题目链接: 从尾到头打印...

  • 剑指offer 第二天

    面试题5 从尾到头打印链表打印 不需要反转链表 遍历链表从前向后 输出从后向前 先进后出 所以要用到栈思路 遍历链...

  • 06:从尾到头打印链表

    题目06:从尾到头打印链表 输入一个链表,从尾到头打印链表每个节点的值。 思路 一. 栈 从头遍历链表,先访问的后...

  • 剑指offer之(链表和栈)

    题目列表链表面试题06. 从尾到头打印链表面试题18. 删除链表的节点面试题22. 链表中倒数第k个节点面试题24...

  • 从尾到头打印链表

    题目描述 输入一个链表,从尾到头打印链表每个节点的值。 这个问题应该是很常见的,如何把一个单向链表进行从尾到头的输...

网友评论

      本文标题:前端常见算法面试题之 - 从尾到头打印链表[JavaScript

      本文链接:https://www.haomeiwen.com/subject/ifdntqtx.html