输入一个链表,按链表值从尾到头的顺序返回一个ArrayList:
解法一:(使用栈)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
import java.util.ArrayList; import java.util.Stack; public class { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { Stack<Integer> stack = new Stack<>(); while(listNode!=null){ stack.push(listNode.val); listNode = listNode.next; } ArrayList<Integer> list = new ArrayList<>(); while(!stack.isEmpty()){ list.add(stack.pop()); } return list; } }
|
解法二:(使用函数递归)
1 2 3 4 5 6 7 8 9 10 11
|
import java.util.ArrayList; public class { ArrayList<Integer> list = new ArrayList<>(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNode != null){ this.printListFromTailToHead(listNode.next); list.add(listNode.val); } return list; } }
|
近期评论