剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public int[] reversePrint(ListNode head) {
int len = 0;
//定义node 指向 头节点
ListNode node = head;
//当头节点不是空值时
while (node != null) {
//len+1
len++;
//头节点指向下一个节点
node = node.next;
}
//经过while之后,此时len中保存的值就是这个List链表有多少节点的数量
//此时的arr的长度和该链表的长度是一致的
int[] arr = new int[len];
node = head;
//从高遍历到低位,进行转换
for (int i = len - 1; i > -1; i--) {
arr[i] = node.val;
node = node.next;
}
return arr;
}
}