#A5402P. 双向链表删除节点(删)
双向链表删除节点(删)
题目描述
给定一个长度为 的双向链表,要求删除链表中的第 个节点,并输出删除后的双向链表(从头到尾顺序输出)。
- 节点编号从头节点开始算起,编号为 。
- 如果 或者 (即链表中没有第 个节点),则判定为无效操作,不进行任何删除,链表保持原样。
- 如果操作后整个双向链表为空,请输出单词
empty。
输入格式
第一行包含一个整数 ,表示初始双向链表的长度。 第二行包含 个整数,表示初始双向链表从头到尾各个节点的值。 第三行包含一个整数 ,表示需要删除的节点正向序号。
输出格式
输出一行整数,包含操作后的双向链表从头到尾所有节点的值,数字之间用一个空格隔开。如果链表被删空,输出 empty。
样例输入 1
5
10 20 30 40 50
3
样例输出 1
10 20 40 50
样例说明 1
需要删除第 3 个节点(值为 30)。删除后,节点 20 的后继指针指向 40,节点 40 的前驱指针指向 20。最终链表为 10 20 40 50。
样例输入 2
1
99
1
样例输出 2
empty
样例说明 2
链表只有一个节点,删除第 1 个节点后链表为空,因此输出 empty。
样例输入 3
4
1 2 3 4
6
样例输出 3
1 2 3 4
样例说明 3
链表只有 4 个节点,要删除第 6 个节点属于越界无效操作,链表保持原样。