首页 > 编程语言 > 详细

83. 删除排序链表中的重复元素

时间:2020-05-09 15:06:37      阅读:52      评论:0      收藏:0      [点我收藏+]

技术分享图片
技术分享图片
技术分享图片

方法一思路:

改变指针域。

class Solution(object):
        def deleteDuplicates(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        # 若空链表或者只有一个节点,则返回原链表
        if not (head and head.next):
            return head
        # 创建新节点
        prehead = ListNode(0)
        # 确定新节点的指针
        prehead.next = head
        # low从第一个节点开始遍历
        low = prehead.next
        # high从low的下一个节点开始遍历
        high = low.next
        while high:
            if high.val == low.val:
                low.next = high.next
            else:
                low = high
            # 不论值域等不等,high都要顺移一位
            high = high.next
        return prehead.next

方法二思路:

改变值域。

class Solution(object):
    def deleteDuplicates2(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        # 空链表或只有一个节点
        if not (head and head.next):
            return head
        low, high = head, head
        while high:
            if high.val != low.val:
                low = low.next
                low.val = high.val
            high = high.next
        low.next = None
        return head

83. 删除排序链表中的重复元素

原文:https://www.cnblogs.com/panweiwei/p/12857039.html

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