LintCode Python 简单级题目 112.删除链表中的重复元素
题目描述:
给定一个排序链表,删除所有重复的元素每个元素只留下一个。
样例
给出 1->1->2->null
,返回 1->2->null
给出 1->1->2->3->3->null
,返回 1->2->3->null
题目分析:
给定一个排序链表,删除所有重复的元素每个元素只留下一个。
源码:
""" Definition of ListNode class ListNode(object): def __init__(self, val, next=None): self.val = val self.next = next """ class Solution: """ @param head: A ListNode @return: A ListNode """ def deleteDuplicates(self, head): # write your code here if head is None: return None pre = head cur = pre fol = pre.next while fol.next is not None: # 一直找到第一个与pre值不等的fol,删除中间所有重复元素 if pre.val == fol.val: fol = fol.next else: pre.next = fol pre = fol fol = pre.next # 检测末尾是否相等 if pre.val == fol.val: pre.next = fol.next else: pre.next = fol return cur