# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 
# @return ListNode类
#

"""
 官方解题思路
 1.判断链表是否为空链表 ,空链表不处理直接返回
 2. 使用一个指针遍历,如果指针当前节点与下一个节点的值相同,就跳过到下一个节点 ,直接指向下一个节点的后一个节点
   否则 当前指针指向下一个节点

 3. 循环条件是当前节点和下一个节点不为空
"""
class Solution:
    def deleteDuplicates(self , head: ListNode) -> ListNode:
        # write code here
        if not head:
            return None
        # 
        cur =head
        while cur and cur.next:# 注意判断条件
            if cur.val ==cur.next.val:
                cur.next=cur.next.next
            else:
                cur=cur.next
        return head