输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
链表类:
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public class Solution {
//输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> stack = new Stack<Integer>();//使用栈来存
ArrayList<Integer> list=new ArrayList<Integer>();
if (listNode == null) {
//判断为空时候的情况
return list;
}
while (listNode != null) {
//将值压入栈中,再指向链表的下一个元素
stack.push(listNode.val);
listNode=listNode.next;
}
while (!stack.empty()){
//根据栈先进后出的特点 出栈将值添加到list中
Integer pop = stack.pop();
list.add(pop);
}
return list;
}
}