美文网首页
从尾到头打印链表

从尾到头打印链表

作者: 打工这件小事 | 来源:发表于2018-11-07 23:44 被阅读0次

《剑指offer》面试题6:从尾到头打印链表

题目:输入一个链表的头节点,从尾到头反过来打印出每个节点的值。(链表是单链表)

思路:由于单链表的特性,只能从头节点开始遍历链表,而打印顺序是从尾到头,故选用“栈”这种数据结构实现“先进后出”。JavaSE中有已经实现好的栈,可以直接使用;同时递归函数本质上也是一个栈结构,在不考虑栈溢出的情况下,也可以使用递归函数实现。

代码如下:

import java.util.ArrayList;
import java.util.Stack;

public class Solution {
    private ArrayList<Integer> arrayList = new ArrayList<>();
    /**
     * 使用JavaSE中的栈类实现
     * @param node
     * @return
     */
    public ArrayList<Integer> printListFromTailToHead(Node node) {
        if (node == null) {
            return null;
        }
        Stack<Integer> stack = new Stack();
        while (node != null) {
            stack.push(node.data);
            node = node.next;
        }
        while (!stack.isEmpty()) {
            arrayList.add(stack.pop());
        }
        return arrayList;
    }

    /**
     * 利用递归实现栈
     * @param node
     * @return
     */
    public ArrayList<Integer> printLinkFromTailToHeadByRecursion(Node node) {
        if (node == null) {
            return null;
        }
        printLinkFromTailToHeadByRecursion(node.next);
        arrayList.add(node.data);
        return arrayList;
    }
}

节点类Node的定义参考文章:https://www.jianshu.com/p/b2c8f4951578
在笔试面试中,应当优先使用JavaSE中已经实现好的Stack栈类解题,提高代码的鲁棒性。

相关文章

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

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

  • 2.3.3 链表

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

  • 06:从尾到头打印链表

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

  • 《剑指offer》— JavaScript(3)从尾到头打印链表

    从尾到头打印链表 题目描述 输入一个链表,从尾到头打印链表每个节点的值。 实现代码 相关知识 链表是一种物理存储单...

  • <<剑指offer>>--javascript(3)-从尾到头打

    从尾到头打印链表 题目描述 输入一个链表,从尾到头打印链表每个节点的值 代码如下 解题思路 链表是一种物理存储单元...

  • 从尾到头打印链表

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

  • 从尾到头打印链表

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

  • 《剑指Offer》链表考点题解

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

  • 剑指Offer -- 从尾到头打印链表(C++)

    题目描述 输入一个链表,从尾到头打印链表每个节点的值。 方法1:注意是从尾到头进行打印,可利用vector的头插法...

  • Day3 剑指offer:逆序链表

    输入一个链表,从尾到头打印链表每个节点的值。

网友评论

      本文标题:从尾到头打印链表

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