给定一个已排序的链表的头 head
, 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
例:
输入:head = [1,1,2] 输出:[1,2]
解析:
创建一个指针,从头开始遍历,当后面的节点的值等于当前指针指向的节点的值时,让当前指针所指的节点的next指向下下个节点,也就是直接跳过下一个节点,不同的话,指针后移一个即可。
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if head == None: # 空判断
return None
flag = head # 创建指针
while flag.next != None: # 循环条件
if flag.val == flag.next.val:
flag.next = flag.next.next # 跳过
else:
flag = flag.next # 指针后移
return head