题解 | #删除有序链表中重复的元素-II#

删除有序链表中重复的元素-II

http://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024

#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 
# @return ListNode类
#
class Solution:
    def deleteDuplicates(self , head: ListNode) -> ListNode:
        # write code here
        if head == None or head.next == None:
            return head
        pre = ListNode(0)    #添加头节点
        pre.next = head
        temp = pre    #因为如果值相同,需要删除当前节点,因此需要记录前一个节点
        while head.next != None:
            if head.next.val == head.val:
                head.next = head.next.next    #下一个值相同,连接下一个节点
                if head.next == None:    #下一个节点为空,删除当前节点
                    temp.next = head.next
                elif head.next.val != head.val:    #下一个节点值不相同,删除当前节点,开始下一个节点判断
                    temp.next = head.next
                    head = head.next
            else:    #值不同,直接判断下一个节点
                head = head.next
                temp = temp.next
        return pre.next
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务