nowcoder-剑指offer-3-从尾到头打印链表

it2022-12-26  73

原题链接

根据题意,我们需要从尾到头打印一个链表,则第一时间会想到递归或者堆栈去实现,不过递归也是用的堆栈。

首先给出使用栈的方法

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); } }

我好菜啊。

最新回复(0)