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

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

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

    def deleteDuplicates(self , head ):
        # write code here
        pre = None
        cur = head
        while cur and cur.next:
            pre = cur
            cur = cur.next
            while cur and pre.val == cur.val:
                t = pre.val
                while cur and cur.val == t:
                    cur = cur.next
                pre.next = cur
        return head
                
这道题是简单版本的删除有序链表的重复元素,我们不需要考虑头结点是否会被删除,因为第一个节点可以被永远保留
故,需要两个结点,pre是(当前遍历过的元素)最后一个节点,cur用于确认现在将要被连接的节点。
1、初始pre = None, cur = head
2、判断cur和cur.next是否存在(由于后续需要cur=cur.next,故需要在此判断)
3、pre = cur,保存当前待连接节点的前一个节点,cur=cur.next开始遍历
4、while循环进行寻找,确认当前cur和pre情况下待删除的节点值,用t保存目前pre.val的值,便于后续节点值的比较;
5、while循环遍历,通过cur来找到目前不等于t的节点
6、连接cur到pre.next
7、头节点没有被删除,return head


                
全部评论

相关推荐

hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务