原题链接
根据题意,我们需要从尾到头打印一个链表,则第一时间会想到递归或者堆栈去实现,不过递归也是用的堆栈。
首先给出使用栈的方法
class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { Stack<Integer> stack=new Stack<>(); ArrayList<Integer> list=new ArrayList(); while(listNode!=null){ stack.push(listNode.val); listNode=listNode.next; } while(!stack.isEmpty()){ list.add(stack.pop()); } return list; } }然后给出使用递归的方法
class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> list=new ArrayList(); print(list,listNode); return list; } public void print(ArrayList<Integer> list,ListNode listNode){ if(listNode==null){ return; } print(list,listNode.next); list.add(listNode.val); } }我好菜啊。