#A5411. 双链表

双链表

题目背景

小杨换了一种存法:每读到一个数,就把它放到链表的最前面。

题目描述

给定 nn 个整数。请你用双向链表来存放它们,规则是:每读入一个数,就把它作为一个新结点插到链表的最前面。

全部读完之后,请从表头到表尾依次输出链表中每个结点的值。

输入格式

第一行一个正整数 nn。

第二行 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n,用空格分隔。

输出格式

一行,从表头到表尾依次输出每个结点的值,整数之间用一个空格分隔。

输入输出样例 #1

输入 #1

5
1 2 3 4 5

输出 #1

5 4 3 2 1

样例解释

依次头插:插 11 得 11;插 22 得 2→12 \to 1;插 33 得 3→2→13 \to 2 \to 1;插 44 得 4→3→2→14 \to 3 \to 2 \to 1;插 55 得 5→4→3→2→15 \to 4 \to 3 \to 2 \to 1。所以输出 5 4 3 2 1。

说明/提示

  • 1≤n≤1000001 \le n \le 100000
  • 0≤ai≤1090 \le a_i \le 10^9
  • 请用双向链表实现,注意维护好每个结点的前驱和后继指针。