输入一个链表,从尾到头打印链表每个节点的值。
public class ListNode {
public int data;
public ListNode next = null;
public ListNode(int data){
this.data = data;
}
public class searchLink {
public ArrayList<Integer>printListFromTailToHead(ListNode listNode){
if(listNode == null){
ArrayList list = new ArrayList();
return list;
}
Stack<Integer> stk = new Stack<Integer>();
while(listNode != null){
stk.push(listNode.data);
listNode = listNode.next;
}
ArrayList<Integer> arr = new ArrayList<Integer>();
while(!stk.isEmpty()){
arr.add(stk.pop());
}
return arr;
}
}
思路在于,借助栈的特点,先进后出。所以先压栈,堆栈,最后再弹栈到集合中就OK。