给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
示例 1:
输入:head = [1,1,2]
输出:[1,2]
示例 2:
输入:head = [1,1,2,3,3]
输出:[1,2,3]
因为链表是排序的,若有重复,则只会相邻结点重复,所以只要比较相邻的结点是否相同即可,若有相同的,则删除掉一个
/**
* 删除排序链表中的重复元素
* 因为链表是排序的,若有重复,则只会相邻结点重复
* 若相邻结点有重复,则删除掉一个
*
* @param head
* @return
*/
public ListNode deleteDuplicates(ListNode head) {
ListNode cur = head;
while (cur != null && cur.next != null) {
if (cur.val == cur.next.val) {
cur.next = cur.next.next;
} else {
cur = cur.next;
}
}
return head;
}