排序链表删除节点
16min,提交三次,没有调试
1.没有考虑头结点被删除的情况,return 了pHead
2.当else删除了节点后的情况时,pre,cur,nex没有进行更新
class Solution:
def deleteDuplication(self, pHead):
dummy=ListNode(None)
dummy.next=pHead
pre=dummy
cur=pHead
nex=None
if cur!=None:nex=cur.next
while nex!=None:
if nex.val!=cur.val:
nex=nex.next
cur=cur.next
pre=pre.next
else:
tmp=cur.val
while nex!=None and nex.val==tmp:nex=nex.next
pre.next=nex
cur=nex
if nex!=None:nex=nex.next
return dummy.next # pHead 头结点有可能被删了,所以不能反悔pHead
简化版本,思路一样,少了一个指针。没想到这个却是磕磕绊绊
class Solution2:
def deleteDuplication(self, pHead):
dummy=ListNode(None)
dummy.next=pHead
pre=dummy
cur=pHead
while cur :
if cur.next.val!=cur.val:
cur=cur.next
pre=pre.next
else:
while cur.next and cur.next.val==cur.val:cur=cur.next
cur=cur.next
pre.next=cur
return dummy.next # pHead 头结点有可能被删了,所以不能反悔pHe
网友评论