友情支持

如果您觉得这个笔记对您有所帮助,看在D瓜哥码这么多字的辛苦上,请友情支持一下,D瓜哥感激不尽,😜

支付宝

微信

有些打赏的朋友希望可以加个好友,欢迎关注D 瓜哥的微信公众号,这样就可以通过公众号的回复直接给我发信息。

wx jikerizhi

公众号的微信号是: jikerizhi因为众所周知的原因,有时图片加载不出来。 如果图片加载不出来可以直接通过搜索微信号来查找我的公众号。

83. Remove Duplicates from Sorted List

Given a sorted linked list, delete all duplicates such that each element appear only once.

Example 1:
Input: 1->1->2
Output: 1->2
Example 2:
Input: 1->1->2->3->3
Output: 1->2->3

解题分析

思考如何把代码写的简单易懂。

附加题

如果效仿 80. Remove Duplicates from Sorted Array II 要求每个元素保留不得两个,又该怎么做呢?

Given a sorted linked list, delete all duplicates such that each element appear only once.

Example 1:

Input: 1->1->2
Output: 1->2

Example 2:

Input: 1->1->2->3->3
Output: 1->2->3
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
/**
 * Runtime: 1 ms, faster than 22.08% of Java online submissions for Remove Duplicates from Sorted List.
 * Memory Usage: 40 MB, less than 7.14% of Java online submissions for Remove Duplicates from Sorted List.
 */
public ListNode deleteDuplicates(ListNode head) {
    ListNode current = head.next;
    while (Objects.nonNull(current) && Objects.nonNull(current.next)) {
        if (current.val == current.next.val) {
            current.next = current.next.next;
        } else {
            current = current.next;
        }
    }
    return head;
}