从链表中删除重复项的代码可能会遇到以下问题:
以下是一个示例的链表删除重复项的代码:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def deleteDuplicates(head):
if not head or not head.next:
return head
dummy = ListNode(0)
dummy.next = head
prev = dummy
curr = head
while curr and curr.next:
if curr.val == curr.next.val:
while curr.next and curr.val == curr.next.val:
curr = curr.next
prev.next = curr.next
else:
prev = prev.next
curr = curr.next
return dummy.next
这段代码通过遍历链表,检查当前节点和下一个节点的值是否相等,如果相等,则删除重复项。时间复杂度为O(n),其中n是链表的长度。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云