题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2] 输出:[2,3,1]
解题思路:辅助栈
利用栈的特点,后进先出的特点,反转
复杂度分析
时间复杂度:,其中
指的是链表长度。
空间复杂度:,将所有数字全存储二遍
我的代码
public class Solution {public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {ArrayList<Integer> temp=new ArrayList<>(); // 辅助栈if(listNode==null) return temp;ListNode p=listNode;// 入栈操作while(p!=null){temp.add(p.val);p=p.next;}// 结果集ArrayList<Integer> res=new ArrayList<>();// 从栈顶开始吐出元素,将元素入结果集for(int i=temp.size()-1;i>=0;i--){res.add(temp.get(i));}return res;}}
