给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 1:
输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:
输入: 1->1->1->2->3
输出: 2->3
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii
思路:遍历整个链表,将不具有重复的节点保存下来。
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def deleteDuplicates(self, head:ListNode)->ListNode:
pre=head
cur=None
new=None
while(pre):
curval=pre.val
tmp=pre
pre=pre.next
no=1
while(pre!=None and pre.val==curval):
no+=1
pre=pre.next
if(no==1):
if(cur):
tmp.next=None
cur.next=tmp
cur=cur.next
else:
tmp.next=None
cur=tmp
new=cur
return new
if __name__=="__main__":
head=ListNode(1)
last=head
for i in[1]:
last.next=ListNode(i)
last=last.next
print(Solution().deleteDuplicates(head))