从尾到头打印链表

156 阅读1分钟

题目描述

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

import java.util.ArrayList;
import java.util.List;

/**
 * 从尾到头打印链表
 *
 */

class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}

public class PrintLinkedListFromTailToHead {


    public static void main(String[] args) {

    }

    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        if (listNode == null) {
            return new ArrayList<>();
        }

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

        printList(list, listNode);

        return list;
    }

    private void printList(ArrayList<Integer> list, ListNode listNode) {
        if (listNode != null) {
            printList(list, listNode.next);
            list.add(listNode.val);
        }
    }


}