Q83 Remove Duplicates from Sorted List

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

For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3.

解题思路:

链表删除操作的应用,即 cur.next = cur.next.next,时间复杂度为 O(n)。

Python实现:
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def deleteDuplicates(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        cur = head
        if cur == None or cur.next == None:  # 如果是空链表或链表只有一个元素
            return head
        while cur.next != None:
            if cur.val == cur.next.val:  # 如果连续两个值相等,则删除后一个
                cur.next = cur.next.next
            else:  # 如果不相等,当前指针后移
                cur = cur.next
        return head

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LeetCode

LeetCode 203 & 237. Delete Node in a Linked List

Write a function to delete a node (except the tail) in a singly linked list, giv...

1410
来自专栏Leetcode名企之路

【Leetcode】82. 删除排序链表中的重复元素 II

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

1253
来自专栏程序你好

Java中创建对象的方式

1323
来自专栏chenjx85的技术专栏

leetcode-83-Remove Duplicates from Sorted List

1976
来自专栏xiaoxi666的专栏

【左神算法课】超经典:求两单向链表交点(6种情况)

    若一个有环一个无环,直接返回NULL,因为如果他们相交,是不可能一个有环一个无环的(图中情况3);

1572
来自专栏韦弦的偶尔分享

Swift 环形链表- LeetCode

可以转化为一个追击问题 前后双指针,slow走一步,fast走两步,如果有环存在,一定会相遇的。

1363
来自专栏机器学习入门

LWC 58:725. Split Linked List in Parts

LWC 58:725. Split Linked List in Parts 传送门:725. Split Linked List in Parts Probl...

2148
来自专栏五分钟学算法

每天一算:Remove Linked List Elements

LeetCode上第203号问题:Remove Linked List Elements

813
来自专栏赵俊的Java专栏

有环链表

1843
来自专栏书山有路勤为径

两个排序链表合并

LeetCode 21. Merge Two Sorted Lists 已知两个已排序链表头节点指针L1,L2,将这两个链表合并,合并后仍为有序的,返回合并后...

1053

扫码关注云+社区

领取腾讯云代金券