刷题记录-剑指offer6:从尾到头打印链表

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

方法一:递归

import java.util.ArrayList;
public class Solution {
    ArrayList<Integer> ret = new ArrayList<Integer>();
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        if(listNode == null)
            return ret;
        printListFromTailToHead(listNode.next);
        ret.add(listNode.val);
        return ret;
    }
}

方法二:栈

import java.util.ArrayList;
import java.util.Stack;
public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ArrayList<Integer> ret = new ArrayList<Integer>();
        Stack<Integer> s = new Stack<Integer>();
        while(listNode!=null){
            s.add(listNode.val);
            listNode = listNode.next;
        }
        while(!s.isEmpty()){
            ret.add(s.pop());
        }
        return ret;
    }
}

java里都有现成的stack和queue接口可以调用

posted @ 2020-05-03 17:36  嫩西瓜  阅读(108)  评论(0)    收藏  举报