@Scrazy
2017-04-12T13:58:17.000000Z
字数 588
阅读 1066
python 算法
所谓的删除是指:
如果这个值重复了,就把它删除的一个不剩。
思路:
1. 假设 链表顺序是 A->B->C->D->E-> ...
2. 构建一个新的链表 current
3. if 分支用于删除多个连续重复节点 例如 A B C D ...
4. else 使用 current 作为中间变量,删除非连续的重复值 eg: B D ...
# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution:def deleteDuplication(self, pHead):if not pHead:return Noneelif not pHead.next:return pHeadcurrent = Noneif pHead.next.val == pHead.val: # 此分支用于删除多个连续重复的节点current = pHead.next.nextwhile current and current.val == pHead.val:current = current.nextreturn self.deleteDuplication(current)else:current = pHead.nextpHead.next = self.deleteDuplication(current)return pHead
