剑指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 }

 

posted @ 2020-08-10 10:59  手下留情  阅读(43)  评论(0编辑  收藏  举报