从尾到头打印链表

题目描述

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

示例

示例 1:

输入: 1->2->3->4
输出: [4,3,2,1]

解题

思路

先进后出首先想到的是栈,那么我们就可以使用虚拟机栈来做这件事,也就是递归来解决。

代码

public class PrintListFromTailToHead {

    public static void main(String[] args) {
        ListNode linkedList = LinkedListUtil.getLinkedList(new int[]{1, 2, 4, 2, 12, 4, 2, 23, 43});
        System.out.println(printListFromTailToHead(linkedList));;
    }

    static ArrayList<Integer> list = new ArrayList<>();

    public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        if (Objects.nonNull(listNode)) {
            printListFromTailToHead(listNode.next);
            list.add(listNode.val);
        }
        return list;
    }

}


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐