#A5410. 双链表

双链表

题目背景

小杨要把一串整数存起来,并且希望既能从头往后走,也能从尾往前回。

题目描述

给定 nn 个整数,请你把它们按原来的顺序存进一个双向链表中(每个结点存放一个整数,并且同时记录前驱和后继),然后:

  1. 从表头走到表尾,依次输出每个结点的值;
  2. 从表尾走回表头,依次输出每个结点的值。

输入格式

第一行一个正整数 nn。

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

输出格式

共两行:

  • 第一行:从表头到表尾依次输出;
  • 第二行:从表尾到表头依次输出。

同一行内的整数之间用一个空格分隔。

输入输出样例 #1

输入 #1

5
1 2 3 4 5

输出 #1

1 2 3 4 5
5 4 3 2 1

样例解释

链表里依次存放 1,2,3,4,51, 2, 3, 4, 5 五个结点。从表头走到表尾得到第一行,从表尾走回表头得到第二行。

说明/提示

  • 1≤n≤1000001 \le n \le 100000
  • 0≤ai≤1090 \le a_i \le 10^9
  • 请用双向链表实现:每个结点同时记录前驱结点和后继结点。