关于反转
题目3描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
方法一:通过栈的先进后出特性实现元素的反转
import java.util.ArrayList; import java.util.*; public class Solution { public ArrayList printListFromTailToHead(ListNode listNode) { Stack stack=new Stack(); ArrayList list=new ArrayList(); while(listNode!=null){ stack.add(listNode.val); listNode=listNode.next; } while(!stack.isEmpty()){ list.add(stack.pop()); } return list; } }
方法二:通过集合工具类Collections的反转方法reverse对集合直接进行反转即可。
注意:Collections.reverse(list)没有返回值,直接对list进行反转
import java.util.*; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> list0=new ArrayList<Integer>(); while(listNode!=null){ list0.add(listNode.val); listNode=listNode.next; } Collections.reverse(list0); return list0; } }#21天打卡剑指offer##学习路径##Java#