leetcode 83. Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution( object ): def deleteDuplicates( self , head): """ :type head: ListNode :rtype: ListNode """ node = head while node: tmp = node val = node.val while node. next and node. next .val = = val: node = node. next # assert node.next is None or node.next.val != val tmp. next = node. next node = node. next return head |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution( object ): def deleteDuplicates( self , head): """ :type head: ListNode :rtype: ListNode """ dummy = cur = ListNode( None ) node = head while node: if node.val ! = cur.val: cur. next = node cur = cur. next node = node. next cur. next = None return dummy. next |
发现其他人的解法和我的都不一样,每次上一个节点比较,如果数值相同,则直接删除当前节点。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution( object ): def deleteDuplicates( self , head): """ :type head: ListNode :rtype: ListNode """ if not head: return None node = head while node. next : if node. next .val = = node.val: node. next = node. next . next else : node = node. next return head |
递归解法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution( object ): def deleteDuplicates( self , head): """ :type head: ListNode :rtype: ListNode """ if not head: return None if not head. next : return head head. next = self .deleteDuplicates(head. next ) if head.val = = head. next .val: return head. next else : return head |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2017-04-18 东京一日游
2017-04-18 cassandra删除所有数据,重置为初始状态——删除<data dir>/data/* <data dir>/commitlog/* <data dir>/saved_caches/* 重启cassandra即可