1.如果节点相同,继续向下找,直到找到不同节点赋值给前面的节点 2.如果节点不同,赋值给上个节点

 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    public ListNode deleteDuplication(ListNode pHead) {
ListNode dummy=new ListNode(-1);
        ListNode tail=dummy;
        while(pHead!=null){
            //进入循环时,确保pHead不会与上一个节点相同
            if(pHead.next==null||pHead.next.val!=pHead.val)
            {
                tail.next=pHead;
                tail=pHead;
            }
            // 如果 pHead 与下一节点相同,跳过相同节点(到达「连续相同一段」的最后一位)
            while(pHead.next!=null&&pHead.val==pHead.next.val)
            {  pHead=pHead.next;
            }
            pHead=pHead.next;
        }
        tail.next=null;
        return dummy.next;
    }
}