剑指offer题解之三——从尾到头打印链表

1. 题目

  • 输入一个链表,从尾到头打印链表每个节点的值。
  • 输入描述:
    输入为链表的表头
  • 输出描述:
    输出为需要打印的“新链表”的表头

2.思路

递归思路,最里层最先执行。


剑指offer题解之三——从尾到头打印链表_第1张图片

3. code

import java.util.ArrayList;
public class Solution {
    public ArrayList array=new ArrayList();
    public ArrayList printListFromTailToHead(ListNode listNode) {
        if(listNode!=null){
            this.printListFromTailToHead(listNode.next);
            array.add(listNode.val);
        }
        return array;
    }
}

运行时间:14ms
占用内存:8536k

public class Solution {
    public ArrayList printListFromTailToHead(ListNode listNode) {
       ArrayList after=new ArrayList<>();
       ArrayList before=new ArrayList<>();
       while(listNode!=null){
           before.add(listNode.val);
           listNode=listNode.next;
       }
       for(int b=before.size()-1;b>=0;b--){
           after.add(before.get(b));
       }
        return after;
    }
}

运行时间:28ms
占用内存:22212k

你可能感兴趣的:(剑指offer题解之三——从尾到头打印链表)