剑指offer-第三题

import java.util.ArrayList;
import java.util.Stack;
class ListNode {
    int val;
    ListNode next = null;

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

/**
 * 目标:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
 * 思路:用stack可以把顺序翻转,然后把stack放到arrayList即可
 * tip:当看到翻转等顺序相反的题目可以尝试使用stack
 * 代码:
 */
public class Solution3 {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ArrayList<Integer> arrayList = new ArrayList<>();
        if (listNode==null){
            return arrayList;
        }
        Stack<Integer> stack = new Stack<>();
        while (listNode!=null){
            stack.push(listNode.val);
            listNode = listNode.next;
        }
        while (!stack.empty()){
            arrayList.add(stack.pop());
        }
        return arrayList;
    }
}
原文地址:https://www.cnblogs.com/Adam-Ye/p/13444881.html