题目要求:思路:打开字典重新打开一个新的链表返回遍历链表。如果当前值已经在字典中,则直接遍历下一个。如果它不在字典中,则将此值添加到字典中。,添加到新的链表核心代码:#创建一个新的链表节点作为返回链表的头部n=ListNode(0)#创建一个新的字典去重mydict={}#赋值新链表的头部listtotmp插入新节点tmp=n#cur用于保存要遍历给定链表的节点cur=head#遍历链表whilecur:#如果这个值已经在字典中,则遍历下一个节点如果cur.val在mydict中:cur=cur。next#如果值不在字典中,则将值添加到字典中,并将节点添加到新列表中else:mydict[cur.val]=Truetmp.next=ListNode(cur.val)cur=cur.nexttmp=tmp.next#返回新链表头的下一个returnn.next完整代码#单链表定义。#classListNode:#def__init__(self,x):#self.val=x#self.next=Noneclass解决方案:defremoveDuplicateNodes(self,head:ListNode)->ListNode:n=ListNode(0)mydict={}tmp=ncur=headwhilecur:ifcur.valinmydict:cur=cur.nextelse:mydict[cur.val]=Truetmp.next=ListNode(cur.val)cur=cur.nexttmp=tmp.next返回n.next
