面试题:从尾到头打印链表

Posted aaron12

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题:从尾到头打印链表相关的知识,希望对你有一定的参考价值。

题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

方法1:典型思路就是利用栈的后进先出

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

方法2:利用递归

 

方法3:利用ArrayList的add

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

 

以上是关于面试题:从尾到头打印链表的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 面试题06. 从尾到头打印链表

面试题:从尾到头打印链表

[剑指offer]面试题5:从尾到头打印链表

剑指OFFER----面试题06. 从尾到头打印链表

剑指Offer之面试题6:从尾到头打印链表

LeetCode | 面试题06. 从尾到头打印链表剑指OfferPython