代码如下:

class Solution:
    def deleteDuplicates(self , head: ListNode) -> ListNode:
        p = head
        while p and p.next:
            if p.val == p.next.val:
                p.next = p.next.next
            else:
                p = p.next
                
        return head

在循环中只有 val 不相同时才往下走

循环的条件是存在 p 以及 p.next,因为循环中需要用到 p.next
若 p.next 不存在则 p 达到尾结点

其余应该没啥要注意的了