输入一个链表,从尾到头打印链表每个节点的值。
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。