牛客网·剑指offer 从尾到头打印链表(JAVA)
题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
解题思路
可以用ArrayList存起来后再反转(需要注意的是,ArrayList本身没有reverse(),需要使用Collections操作),也可以用Stack先进后出的特性做。
/**
* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
import java.util.ArrayList;
import java.util.Collections;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> ans = new ArrayList<Integer>();
for(ListNode t = listNode; t != null; t = t.next) {
ans.add(t.val);
}
Collections.reverse(ans);
System.out.println(ans);
return ans;
}
}