题目

83. Remove Duplicates from Sorted List

代码

代码1:双指针:

class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        if not head:
            return head
        dummy = prev = head
        node = head.next
        while node:
            #print(prev.val,node.val)
            if node.val == prev.val:
                node = node.next
            else:
                prev.next = node
                prev = prev.next
                node = node.next
        prev.next = None
        return dummy

代码2:单指针

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

class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        cur = head
        while cur:
            while cur.next and cur.next.val == cur.val:
                cur.next = cur.next.next     # skip duplicated node
            cur = cur.next     # not duplicate of current node, move to next node
        return head

相关文章:

  • 2021-06-29
  • 2022-01-19
  • 2021-06-02
  • 2022-01-05
  • 2021-05-17
  • 2021-05-31
  • 2021-11-05
  • 2021-05-27
猜你喜欢
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案