美文网首页
LeetCode题解之从尾到头打印链表

LeetCode题解之从尾到头打印链表

作者: l1fe1 | 来源:发表于2020-08-10 08:21 被阅读0次

    从尾到头打印链表

    题目描述

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

    示例 :

    输入:head = [1,3,2]
    输出:[2,3,1]
    

    限制:

    0 <= 链表长度 <= 10000

    解题思路

    借助栈来实现。

    复杂度分析

    • 时间复杂度:O(n),其中 n 是链表中节点的个数。
    • 空间复杂度:O(n),需要借助额外的辅助空间栈来实现,因此空间复杂度为 O(n)。

    代码实现

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public int[] reversePrint(ListNode head) {
            Stack<Integer> stack = new Stack<>();
            ListNode h = head;
            while (h != null) {
                stack.push(h.val);
                h = h.next;
            }
            int[] res = new int[stack.size()];
            int i = 0;
            while (!stack.isEmpty()) {
                res[i++] = stack.pop();
            }
            return res;
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode题解之从尾到头打印链表

          本文链接:https://www.haomeiwen.com/subject/kaxarktx.html