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;
}
}