import sys
class ListNode(object):
def __init__(self, val=0, next=None):
self.val = val
self.next = next
for line in sys.stdin:
a = line.split("\n")[0]
nums = a.split(" ")
nums = [int(_) for _ in nums]
sum_count = nums[0]
head = ListNode(nums[1], None)
org_head = ListNode()
org_head.next = head
new_nums = nums[2:]
d = {nums[1]: head}
for i in range(0, len(new_nums)-1, 2):
#print(i)
pre = new_nums[i + 1]
last = new_nums[i]
if pre in d:
pre_node = d[pre]
else:
pre_node = ListNode(pre)
d[pre] = pre_node
if last in d:
last_node = d[last]
else:
last_node = ListNode(last)
d[last] = last_node
if pre_node.next:
temp = pre_node.next
pre_node.next = last_node
last_node.next = temp
else:
pre_node.next = last_node
del_num = new_nums[-1]
del_node = d.get(del_num)
node = org_head
#print(d)
while node:
if del_node and node.val == del_node.val:
node = node.next
continue
if node != org_head:
print(node.val, end=" ")
node = node.next
搞个链表类,然后模拟构建链表即可,需要注意一下那种已经有了next的再中间插入一个node.

京公网安备 11010502036488号