描述
请你实现一个链表。
操作:
insert x y:将yy加入链表,插入在第一个值为xx的结点之前。若链表中不存在值为xx的结点,则插入在链表末尾。保证xx,yy为int型整数。
delete x:删除链表中第一个值为xx的结点。若不存在值为xx的结点,则不删除。
输入描述:
第一行输入一个整数nn (1\le n \le 10^41≤n≤10 4 ),表示操作次数。
接下来的nn行,每行一个字符串,表示一个操作。保证操作是题目描述中的一种。
输出描述:
输出一行,将链表中所有结点的值按顺序输出。若链表为空,输出"NULL"(不含引号)。
示例1
输入:
5
insert 0 1
insert 0 3
insert 1 2
insert 3 4
delete 4
输出:
2 1 3
实现:
python代码实现:
def space_queue():
input_int = int(input())
queue1 = []
for num_input in range(input_int):
operate_input = input().split(' ')
# num1,num2,num3=operate_input[0],operate_input[1],operate_input[2]
num1 = operate_input[0]
if num1 == 'insert':
num2 = int(operate_input[1])
num3 = int(operate_input[2])
if num2 in queue1:
index_2 = queue1.index(num2)
list1 = queue1[:index_2]
list2 = queue1[index_2:]
list1.append(num3)
queue1 = list1 + list2
else:
queue1.append(num3)
else:
if num1 == 'delete':
#print('delete',num1)
num2 = int(operate_input[1])
#print('num2',num2)
if num2 in queue1:
#print('in')
index_2 = queue1.index(num2)
queue1.pop(int(index_2))
#print('delete',queue1)
else:
continue
return queue1
result = space_queue()
#print(result)
if result:
result1=[str(i) for i in result]
print(' '.join(result1))
else:
print('NULL')