从尾到头打印链表

题目描述

输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

代码实现

  • 借助堆栈实现。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
    Stack<Integer> integerStack = new Stack<>();
    while (listNode != null) {
    integerStack.push(listNode.val);
    listNode = listNode.next;
    }

    ArrayList<Integer> integerArrayList = new ArrayList<>();
    while (!integerStack.isEmpty()) {
    integerArrayList.add(integerStack.pop());
    }

    return integerArrayList;
    }
  • 借助递归实现。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
    ArrayList arrayList = new ArrayList();
    xx(arrayList, listNode);
    return arrayList;
    }

    public void xx(ArrayList<Integer> arrayList, ListNode listNode) {
    if (listNode != null) {
    xx(arrayList, listNode.next);
    arrayList.add(listNode.val);
    }
    }
-------------本文结束感谢您的阅读-------------

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

文章作者:huihui

发布时间:2018年10月21日 - 00:10

最后更新:2019年02月14日 - 19:02

原始链接:http://101.200.47.120:8011/2018/10/21/从尾到头打印链表/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。