输入一个链表,从尾到头打印链表每个节点的值。
1.用栈实现:
package point2Offer; import java.util.*; /** * Created by GX on 2017/8/5. * 从尾到头打印链表 */ public class PrintArrayFromEnd { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { Stack<Integer> stack = new Stack<>(); ArrayList<Integer> list = new ArrayList<>(); if (null == listNode) { return list; } while (null != listNode) { stack.push(listNode.val); listNode = listNode.next; } while (!stack.isEmpty()) { list.add(stack.pop()); } return list; } } 2.递归实现
package point2Offer; import java.util.Array; public class PrintArrayFromEnd { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { //递归实现 ArrayList<Integer> list = new ArrayList<>(); if (null == listNode) { return list; } printList(list,listNode); return list; } private static void printList(ArrayList<Integer> list,ListNode listNode){ if (null != listNode) { printList(list,listNode.next); list.add(listNode.val); } return; } }