实现一个双链表,双链表初始为空,支持5种操作:
(1).在最左侧插入一个整数
(2).在最右侧插入一个整数
(3).将第 k 个插入的整数删除
(4).在第 k 个插入的整数左侧插入一个整数
(5).在第 k 个插入的整数右侧插入一个整数
现在要对该链表进行 m 次操作,进行完所有操作后,从左到右输出整个链表。
题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入 n 个数,则按照插入时间顺序,这 n 个数依次为:第1个插入的数,第2个插入的数,...,第 n 个插入的数。
(1)."L x",表示在链表最左端插入整数 x
(2)."R x",表示在链表最右端插入整数 x
(3)."D k",表示将第k个插入的整数删除
(4)."IL k x",表示在第k个插入的整数左侧插入一个整数 x
(5)."IR k x",表示在第k个插入的整数右侧插入一个整数 x
输入
第一行一个整数 m(1 \le m \le 1\times 10^5)。
接下来 m 行,每行一个字符串。
保证所有整数均在int范围内。
保证所有操作均合法。
输出
输出一行整数。
样例
标准输入 复制文本 |
10 R 7 D 1 L 3 IL 2 10 D 3 IL 2 7 L 8 R 9 IL 4 7 IR 2 2 |
标准输出 复制文本 |
8 7 7 3 2 9 |