题目描述
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例

题解
创建一个与链表等大小的int数组。倒序将数字写入。
要知道链表的长度,必须先暂存链表头节点,再进行计算,否则链表遍历一次之后,将丢失头节点。
代码
/**
* 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 totalNum = 0;
//暂存头节点
ListNode oriHead = head;
//遍历链表,获取链表长度
while(oriHead != null) {
totalNum ++;
oriHead = oriHead.next;
}
int[] res = new int[totalNum];
if (totalNum <= 0) {
return res;
}
//数组倒序赋值
for (int i = totalNum - 1; i >= 0; i--) {
res[i] = head.val;
head = head.next;
}
return res;
}
}

该博客主要介绍了如何通过遍历链表并倒序存储其值来实现从尾到头的链表节点值返回。首先,保存头节点,然后遍历链表获取其长度。接着,使用一个等长的数组倒序填充节点值,并返回该数组。这种方法巧妙地解决了链表的逆序输出问题。

344

被折叠的 条评论
为什么被折叠?



