刷题记录-剑指offer6:从尾到头打印链表
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
方法一:递归
import java.util.ArrayList; public class Solution { ArrayList<Integer> ret = new ArrayList<Integer>(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode == null) return ret; printListFromTailToHead(listNode.next); ret.add(listNode.val); return ret; } }
方法二:栈
import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> ret = new ArrayList<Integer>(); Stack<Integer> s = new Stack<Integer>(); while(listNode!=null){ s.add(listNode.val); listNode = listNode.next; } while(!s.isEmpty()){ ret.add(s.pop()); } return ret; } }
java里都有现成的stack和queue接口可以调用
浙公网安备 33010602011771号