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;
    }
}
posted @ 2025-05-12 10:45  回忆、少年  阅读(11)  评论(0)    收藏  举报