简单题怎么做都行
官方题解是先正向遍历把值存在一个额外的栈中,再从栈中反向取出
我认为,这样做的额外空间是O(n) ,但如果我们正向遍历只用一个变量记录链表有多长,第二次遍历的时候把值从一个数组的尾部开始添加,最后返回。这样我们的额外空间是O(1)
自己的(0ms)
class Solution {
public int[] reversePrint(ListNode head) {
int index = -1;
for(ListNode t = head; t != null; t = t.next) index ++;
int[] ans = new int[index + 1];
for(ListNode t = head; t != null; t = t.next) ans[index--] = t.val;
return ans;
}
}