题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)
示例
输入:head = [1,3,2]
输出:[2,3,1]
思路
1、首先,定义一个cur节点用于遍历链表,从而得知链表的长度,以便建立数组;
2、利用遍历获取到的链表长度来构建数组arr;
3、建立好数组后,按照从后往前的顺序往数组中填入链表的值,此时链表head位置的值便填入到数组arr的最后一个位置。
代码
public class Solution1 {
public static int[] reversePrint(ListNode head) {
ListNode cur = head;
int length = 0;
while(null != cur){
length++;
cur = cur.next;
}
int[] arr = new int[length];
while(length > 0){
arr[--length] = head.val;
head = head.next;
}
return arr;
}
}