在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
这种递归的链表的解法看起来题目很简单,答案也很简单,但是递归过程中的变量变化逻辑很重要,可以画图来慢慢琢磨。
class Solution:
def deleteDuplication(self, pHead): if pHead==None or pHead.next==None:
return pHead
if pHead.next.val==pHead.val:
current=pHead.next.next
while current and current.val==pHead.val:
current=current.next
return self.deleteDuplication(current)
else:
current=pHead.next
pHead.next=self.deleteDuplication(current)
return pHead