思路
这道题是要我们从尾到头打印链表,最终返回一个数组;我们需要做的是,先获取链表的长度,然后创建一个同等长度的数组,最后倒着把链表填充到数组里面返回便可
java
public int[] reversePrint(ListNode head) {
ListNode temp = head;
int headSize = 0;
while (Objects.nonNull(temp)) {
headSize++;
temp = temp.next;
}
int[] res = new int[headSize];
temp = head;
for (int i = headSize - 1; i >= 0; i--) {
res[i] = temp.val;
temp = temp.next;
}
return res;
}
go
func reversePrint(head *ListNode) []int {
temp := head
headSize := 0
for temp != nil {
headSize++
temp = temp.Next
}
temp = head
res := make([]int, headSize, headSize)
for i := headSize - 1; i >= 0; i-- {
res[i] = temp.Val
temp = temp.Next
}
return res
}