题目
删除重复链表
1–1--1–2--3
return 2–3
思路
设置一个哨兵,一个pre=哨兵,然后比较cur和curnext,若相等curnext向前移一个,若不相等,则cur移动到curnext,然后在判断当前cur和curnext,若不相等,pre连上cur,否则不连。
代码
def remove_repeat2(link):
head = link.head
cur = head.next
cur_next = cur.next
dummy = Node()
pre = dummy
while cur_next is not None:
if cur.value == cur_next.value:
cur_next = cur_next.next
else:
cur = cur_next
cur_next = cur_next.next
if cur and cur_next and cur.value != cur_next.value:
pre.next = cur
pre = cur
elif cur_next is None:
pre.next = cur
pre = cur
return dummy.next