10081_AA

导航

剑指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)的操作,从最后一次到第一次。

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

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

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

posted on 2019-01-21 21:41  10081_AA  阅读(89)  评论(0编辑  收藏  举报