题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
代码:
class Solution {
public int[] reversePrint(ListNode head) {
ListNode node = head;
int count = 0;
while(node!=null){
count++;
node = node.next;
}
int[] nums = new int[count];
node = head;//重新初始化
for(int i = count-1; i >= 0; i--){
nums[i] = node.val;
node = node.next;
}
return nums;
}
}
既然题目要求要用数组来返回,那也省事了,毕竟数组比链表更让人熟悉。
我们先用while遍历链表以求得链表的长度count,然后再创建一个数组,刚才链表的count即数组的元素个数,然后再将head赋值给node。
既然要从尾到头打印,那就反向遍历赋值给数组即可。