剑指OFFER例题——从尾到头打印链表

 1 /**
 2 *    public class ListNode {
 3 *        int val;
 4 *        ListNode next = null;
 5 *
 6 *        ListNode(int val) {
 7 *            this.val = val;
 8 *        }
 9 *    }
10 *
11 */
12 import java.util.ArrayList;
13 public class Solution {
14     ArrayList<Integer> myList = new ArrayList<Integer>();
15     public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
16         if(listNode != null){
17             //a = listNode.next;
18             this.printListFromTailToHead(listNode.next);
19             myList.add(listNode.val);//中文字符错误过一次
20         }
21         return myList;    
22     }
23 }

运用了递归的思想,递归的点在this.printListFromTailToHead(listNode.next),在最后一次递归方法返回后,每一层的递归方法都会做一个myList.add(listNode.val)的操作,从最后一次到第一次。

这是参考牛客网大神的说法,自己还需要再推敲推敲。

递归:直接或间接调用自己的算法

欲知后事,请听之后分解~

猜你喜欢

转载自www.cnblogs.com/10081-AA/p/10301196.html