AcWing 17. Java
原题链接
简单
作者:
0918k
,
2020-05-19 07:39:57
,
所有人可见
,
阅读 566
java代码
第一种方法直接将链表存入数组,在反向输出数组即可
class Solution{
public int[] printListReversingly(ListNode head){
if(head == null) return null;
ArrayList<Integer> nums = new ArrayList<>();
ListNode cur = head;
while(true){
nums.add(cur.val); // 将当前值加入List数组中
if(cur == null) break; // 循环到最后跳出
}
int[] res = new int[nums.size()]; // 答案放入数组
for(int i = 0; i < nums.size()-1; i ++){
res[i] = nums.get(res.size() - 1 - i);
}
return res;
}
}
利用栈
class Solution {
public int[] printListReversingly(ListNode head) {
ArrayList<Integer> stack = new ArrayList<>();
int len = 0;
while(head != null){
len ++;
stack.add(head.val);
head = head.next;
}
int[] res = new int[len];
for(int i = 0; i < len ; i++){
res[len-1 - i] = stack.remove(0);
}
return res;
}
}