描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次 例如: 给出的链表为1\to1\to21→1→2,返回1 \to 21→2. 给出的链表为1\to1\to 2 \to 3 \to 31→1→2→3→3,返回1\to 2 \to 31→2→3.
示例1
输入:
{1,1,2}
返回值:
{1,2}
思路
快慢指针。
快指针和慢指针比较数值,如果不相等就是没有重复出现,慢指针就跟上,快指针继续探路....?
可以通俗一点,小弟在前面探路,觉得安全了,大哥再跟上.........
class Solution:
def deleteDuplicates(self , head ):
# write code here]
if head is None:
return head
slow, fast = head, head
while fast:
#没有重复出现
if slow.val != fast.val:
slow.next = fast
slow = fast
#快指针继续探路....
fast = fast.next
slow.next = None
return head
|