5.从尾到头打印链表
输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。
返回的结果用数组存储。
数据范围:
0≤链表长度 ≤1000。
样例:
输入:[2, 3, 5]
返回:[5, 3, 2]
代码:
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public int[] printListReversingly(ListNode head) {
//使用LinkedList暂存链表值
Deque<Integer>stack = new LinkedList<>();
//遍历链表,将每个节点的值加入LinkedList
while(head!=null){
//添加到stack中
stack.add(head.val);
//移动到下一个节点
head = head.next;
}
//创建结果数组,大小为链表元素个数
int[] nums = new int[stack.size()];
//逆序填充数组
for(int i = 0;!stack.isEmpty();i++)nums[i] = stack.removeLast();
//返回结果
return nums;
}
}

浙公网安备 33010602011771号