题解 | 插队
插队
https://www.nowcoder.com/practice/ed27560740114f07a23fad98afac12b6
from typing import Optional
class ListNode:
def __init__(self, val: str):
self.val = val
self.prev: Optional["ListNode"] = None
self.next: Optional["ListNode"] = None
head = ListNode("")
head.next = head
head.prev = head
p = head
node_dict = {}
n, m = list(map(int, input().split()))
s = input().split()
for val in s:
node = ListNode(val)
node_dict[val] = node
p.next = node
node.prev = p
p = p.next
p.next = head
head.prev = p
for _ in range(m):
x, y = input().split()
x_node = node_dict[x]
y_node = node_dict[y]
x_node.prev.next = x_node.next
x_node.next.prev = x_node.prev
x_node.prev = y_node.prev
x_node.next = y_node
y_node.prev.next = x_node
y_node.prev = x_node
p = head.next
while p != head:
print(p.val, end=" ")
p = p.next
汤臣倍健公司氛围 420人发布