在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针
思路:
代码如下:
public ListNode deleteDuplication() {
if(this.head == null) {
return null;
}
ListNode cur = this.head;
ListNode newHead = new ListNode(-1);
ListNode tmp = newHead;
while(cur != null) {
//重复节点
if(cur.next != null
&& cur.data == cur.next.data){
while(cur.next != null
&& cur.data == cur.next.data) {
cur = cur.next;
}
}else {
tmp.next = cur;
tmp = tmp.next;
cur = cur.next;
}
}
//最后一个节点如果也是重复的
// 需要将tmp.next = null;
tmp.next = null;
return newHead.next;
}