题目所属分类
删除重复的链表元素 维护了一个相同的区间
链表题还是画图清晰
原题链接
给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。
代码案例:
题解
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode dummy = new ListNode(-1);
dummy.next = head;
ListNode p = dummy;
while(p.next != null){
ListNode q = p.next.next;//下一个第二个数存在的
while(q != null && p.next.val == q.val)q = q.next;
if(p.next.next == q) p = p.next;
else p.next = q ;
}
return dummy.next;
}
}