题解 | #删除有序链表中重复的元素-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


                
全部评论

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳  yidao,试用期 6 个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
我也曾抱有希望:说的好直白
点赞 评论 收藏
分享
牛客154160166号:9月底还给我发短信,好奇怪,我24届的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务