首页 > 编程语言 > 详细

【leetcode】83: 删除排序链表中的重复元素

时间:2021-08-24 09:56:08      阅读:11      评论:0      收藏:0      [点我收藏+]

题目如下:

技术分享图片

 

整个题目可以建立一个dummy variable用于储存我们新的用于返回的指针,这个variable也是一个node,我们用这个dummy variable来和head当中的value进行比较,如果相同,则dummy variable保持不变,同时head往后移动一个node。如果不相同,说明我们遇到了一个和前一个node value不相同的元素,则dummy variable往后增添一个node,head同时也向后移动一个node。一旦移动完所有的head linked list,我们将dummy variable的下一个元素赋值为none,这样就可以得到一个新的linked list了!

代码如下:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        if head == None:
            return None
        dummy = ListNode(-101)
        tail = dummy
        while head:
            #这里相当于用前一个链表node当中的数值和后一个head当中的数值进行比较,
            #如果不相等,则继续下去,相等则head往后移动一格
            if tail.val != head.val:
                tail.next = head
                tail = tail.next
            head = head.next
        tail.next = None
        return dummy.next 

 

【leetcode】83: 删除排序链表中的重复元素

原文:https://www.cnblogs.com/geeksongs/p/15178160.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!