题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
示例
输入
{67,0,24,58}
返回值
[58,24,0,67]
题目分析
题目的意思就是将一个链表翻转,然后转成数组输出。因此可以使用栈结构实现链表的翻转输出,这里使用的是ArrayList内置的add方法。时间复杂度为o(n)。
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
//返回值
ArrayList<Integer> res = new ArrayList<>();
//如果第一个节点为空,直接返回空数组
if(listNode == null) {
return res;
}
while(listNode != null) {
res.add(0,listNode.val);
listNode = listNode.next;
}
return res;
}