题目描述:
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { //思路:先将元素入栈,在取出到arrayList中 Stack <Integer> s = new Stack<>(); ArrayList<Integer> list=new ArrayList<>(); //链表元素入栈 while(listNode!=null){ s.push(listNode.val); listNode=listNode.next; } //栈中元素出栈 while(!s.empty()){ list.add(s.pop()); } return list; } }
栈的判空操作: stack.empty();