【Lintcode】112. Remove Duplicates from Sorted List
发布日期:2021-05-03 18:44:35 浏览次数:17 分类:技术文章

本文共 905 字,大约阅读时间需要 3 分钟。

题目地址:

给定一个有序链表,要求删除出现多于一次的元素,也即相同元素只剩一个。代码如下:

public class Solution2 {       /**     * @param head: head is the head of the linked list     * @return: head of linked list     */    public ListNode deleteDuplicates(ListNode head) {           // write your code here        ListNode dummy = new ListNode(0), prev = dummy;        dummy.next = head;        ListNode cur = head;        while (cur != null) {           	// 越过重复元素,使得cur指向重复元素中最后一个(如果不重复那就指向唯一的那个)            while (cur.next != null && cur.next.val == cur.val) {                   cur = cur.next;            }            // 将那个元素连到prev后面,然后同时移动两个指针向后一步            prev.next = cur;            prev = prev.next;            cur = cur.next;        }                return dummy.next;    }}class ListNode {       int val;    ListNode next;    ListNode(int x) {           val = x;        next = null;    }}

时间复杂度 O ( n ) O(n) O(n),空间 O ( 1 ) O(1) O(1)

上一篇:【Lintcode】96. Partition List
下一篇:【Lintcode】452. Remove Linked List Elements

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月19日 01时25分14秒