/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public int[] printListReversingly(ListNode head) {
ArrayList<Integer> arrayList = new ArrayList<>();
while(head != null){
arrayList.add(head.val);
head = head.next;
}
int[] arr = new int[arrayList.size()];
for (int i = arr.length-1,j=0; i >= 0 && j < arr.length; i--,j++) {
arr[i] = arrayList.get(j);
}
return arr;
}
}
先用头指针指向末尾,再建立一个和链表长度相同数组来存储其从后往前的值
利用 for 循环遍历数组和链表,将链表的值从后往前赋值给数组,最后直接返回这个数组就行了