剑指Offer:从尾到头打印链表(6)
题目描述:
从尾到头反过来打印出每个结点的值。
解题思路:
递归:
要逆序打印链表 1->2->3(3,2,1),可以先逆序打印链表 2->3(3,2),最后再打印第一个节点 1。
而链表 2->3 可以看成一个新的链表,要逆序打印该链表可以继续使用求解函数,也就是在求解函数中调用自己,这就是递归函数。
1 import java.util.ArrayList; 2 public class Solution { 3 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { 4 ArrayList<Integer> ret = new ArrayList<>(); 5 if(listNode!=null){ 6 ret.addAll(printListFromTailToHead(listNode.next)); 7 ret.add(listNode.val); 8 } 9 return ret; 10 } 11 }