题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
思路:采用两个辅助节点
public ListNode deleteDuplication(ListNode pHead){
ListNode first = new ListNode(Integer.MIN_VALUE),pre;
first.next = pHead;
pre = first;
while (pHead != null && pHead.next != null) {
if (pHead.val == pHead.next.val) {
int val = pHead.val;
while (pHead!= null && pHead.val == val) pHead = pHead.next;
pre.next = pHead;
}
else {
pre = pHead;
pHead = pHead.next;
}
}
return first.next;
}