给定一个已排序的链表的头 head
, 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
示例 1:

示例 2:

提示:
- 链表中节点数目在范围
[0, 300]
内
-100 <= Node.val <= 100
- 题目数据保证链表已经按升序 排列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Solution { public ListNode deleteDuplicates(ListNode head) { if(head == null || head.next == null){ return 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; } }
|
给定一个已排序的链表的头 head
, 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。
示例 1:

示例 2:

提示:
- 链表中节点数目在范围
[0, 300]
内
-100 <= Node.val <= 100
- 题目数据保证链表已经按升序 排列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode dummy = new ListNode(); dummy.next = head; ListNode pre = dummy; ListNode p = head; while(p != null && p.next != null){ if(p.val == p.next.val){ while(p.next != null && p.val == p.next.val){ p = p.next; } p = p.next; }else{ pre.next = p; pre = pre.next; p = p.next; } } pre.next = p; return dummy.next; } }
|