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

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

http://www.nowcoder.com/practice/c087914fae584da886a0091e877f2c79

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

描述 删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次

例如: 给出的链表为1→1→2,返回1→2.

给出的链表为1→1→2→3→3,返回1→2→3.

数据范围:链表长度满足 0≤n≤100,链表中任意节点的值满足∣val∣≤100 进阶:空间复杂度 O(1),时间复杂度 O(n)

思路:这题目简单得不能再简单了,遍历一遍,然后删掉重复的就好了。如果p.val == p.next.val,就删除p.next。就是直接将p.next.next 设置为p.next。如果不相同p就往后移一步。

# class ListNode:
#     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:
            return None
        p = head
        while p.next != None:
            if p.val == p.next.val:
                p.next = p.next.next
            else:
                p = p.next
        return head
全部评论

相关推荐

02-22 21:16
已编辑
门头沟学院 运营
牛客928043833号:离了你谁还拿我当个宝
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务