1.遇到链表遍历就是
2.运行结果超过双80%

 public ListNode deleteDuplicates (ListNode head) {
        //定义一个空链表(目标链表)把不重复的节点添加到该链表
        ListNode prv = new ListNode(0);
        ListNode node = prv;
        //定义一个临时变量 保存删除节点的值,初始化为最大
        int temp = Integer.MAX_VALUE;
        //比较的是当前节点和他的下一节点 所以都不能为空
        while(head!=null && head.next!=null){
            //如果当前节点的值等于他子节点的值
            if(head.val == head.next.val){
               //先保存当前的值给临时变量
                temp = head.val;
               //继续往下走如果 遍历的节点等于保存的值 那就继续往下走,走到不相等或者到最后一个节点
                while(head!=null && temp == head.val){
                    head =head.next;
                }
            }else{
                //这里是不相等
                temp = head.val; 
                //取一个临时节点  保存当前节点的下一个节点
                ListNode tp = head.next;
                //将下一节点置空,只保留当前节点
                head.next = null;
                //将当前节点赋给目标链表
                node.next = head;
                //将临时的节点 重新赋值给head
                head = tp;
                //目标链表 指针下推
                node=node.next;
            }
        }
         //前面while循环结束条件可能是head.next==null ,所以这里判断下 不为空直接加入目标节点
        if(head !=null) node.next = head;
        //返回目标链表的next节点
        return prv.next;
    }

看明白的点个赞再走吖