B4324 【模板】双向链表
题目描述
给出 $N$ 个结点,编号依次为 $1 \dots N$,初始按编号从小到大排列成一条双向链表。
接下来有 $M$ 条指令,请按要求对链表进行修改。所有操作均保证合法。
| 指令 | 含义 |
|:------:|:------:|
| $1\ x\ y$ | 将结点 $x$ 插入到 $y$ 的左侧(若 $x = y$ 则忽略本条指令)。 |
| $2\ x\ y$ | 将结点 $x$ 插入到 $y$ 的右侧(若 $x = y$ 则忽略本条指令)。 |
| $3\ x$ | 删除结点 $x$;若 $x$ 已被删除则忽略本条指令。 |
操作结束后,请按从左到右的顺序输出当前链表中所有结点的编号。
输入格式
第一行输入两个正整数 $N,M$,表示链表初始的结点数和操作指令数。
接下来 $M$ 行,每行一条指令,如题意所述。
输出格式
输出一行,即:操作结束后,按从左到右的顺序输出当前链表中所有结点的编号。如果链表不存在结点,输出 `Empty!`。
说明/提示
### 样例解释
- 初始时,链表为:$1\ 2\ 3\ 4\ 5\ 6\ 7\ 8\ 9\ 10$;
- 第一次操作,将 $2$ 插入到 $3$ 左侧。由于初始时已经符合 $2$ 在 $3$ 左侧,所以链表还是:$1\ 2\ 3\ 4\ 5\ 6\ 7\ 8\ 9\ 10$;
- 第二次操作,将 $4$ 插入到 $5$ 的右侧,链表为:$1\ 2\ 3\ 5\ 4\ 6\ 7\ 8\ 9\ 10$;
- 第三次操作,删除结点 $2$,链表为:$1\ 3\ 5\ 4\ 6\ 7\ 8\ 9\ 10$;
- 第四次操作,将 $9$ 插入到 $4$ 的左侧,链表为:$1\ 3\ 5\ 9\ 4\ 6\ 7\ 8\ 10$;
- 第五次操作,将 $7$ 插入到 $8$ 的右侧,链表为:$1\ 3\ 5\ 9\ 4\ 6\ 8\ 7\ 10$;
- 第六次操作,删除结点 $4$,链表为:$1\ 3\ 5\ 9\ 6\ 8\ 7\ 10$;
- 第七次操作,删除结点 $10$,链表为:$1\ 3\ 5\ 9\ 6\ 8\ 7$;
### 数据范围
- 对于 $30\%$ 的数据,$1\leq N,M\leq 10$;
- 对于 $60\%$ 的数据,$1\leq N,M\leq 3000$;
- 对于所有数据,$1\leq N,M\leq 5\times 10^5$;