存在一个按升序排列的链表,给你这个链表的头节点 head,请你删除所有重复的元素,使每个元素只出现一次,返回同样按升序排列的结果链表。
输入:head = [1,1,2]
输出:[1,2]
输入:head = [1,1,2,3,3]
输出:[1,2,3]
因为给定的链表是排序好的,重复元素一定是连续的,只需两两比较元素判断是否重复,如果重复则移除元素即可
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
迭代遍历
public ListNode deleteDuplicates(ListNode head) {
if (head == null) {
return head;
}
ListNode cur = head;
while (cur.next != null) {
if (cur.val == cur.next.val) {
cur.next = cur.next.next;
} else {
cur = cur.next;
}
}
return head;
}