题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
解答:
1.栈的方法
 public ArrayList<integer> printListFromTailToHead(ListNode listNode){</integer>
    Stack<Integer> stack=new Stack<Integer>();
    ArrayList<Integer> arrayList=new ArrayList<>();
    if(listNode==null){
        return arrayList;
    }
    while(listNode!=null){
        stack.push(listNode.val);
        listNode=listNode.next;
    }
    while (!stack.isEmpty()){
        arrayList.add(stack.pop());
    }
    return arrayList;
}2.递归方法
public class Solution {
ArrayList<Integer> arrayList=new ArrayList<>();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
   if (listNode!=null){
        printListFromTailToHead(listNode.next);
        arrayList.add(listNode.val);
    }
    return arrayList;
}}

京公网安备 11010502036488号