热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

删除且保留其中一个重复元素的思路和删除且不保留其中一个重复元素的思路

本文介绍了两种删除重复元素的方法,一种是删除且保留其中一个重复元素的思路,通过遍历结点,遇到相同的跳过一个结点来删除重复元素;另一种是删除且不保留其中一个重复元素的思路,通过双指针,快慢指针找到相同的或者不同的值,并用flag标记,找到不同的值后用慢指针指向。
删除且保留其中一个重复元素在这里插入图片描述

思路:
遍历结点,遇到相同的跳过一个结点(删除)

def deleteDuplicates(self, head):if head == None:return headcur = headwhile cur.next != None:first = cur.valccur = cur.nextsecond = ccur.val# 删除重复结点,保留其中一个if second == first:ccur = ccur.nextcur.next = ccurelse:cur = ccurreturn head

删除且不保留其中一个重复元素

在这里插入图片描述

思路:
双指针:快慢指针,用快指针找到相同的或者不同的值,并用flag标记,找到不同的值后用慢指针指向。


题目是不保留重复元素

def deleteDuplicates(self, head: ListNode) -> ListNode:dummy = ListNode(0)slow = dummyfast = headwhile fast != None:# 是否快进的标志flag = Falsewhile fast.next !=None and fast.val == fast.next.val:flag = Truefast = fast.nextif not flag:slow.next = fastslow = slow.nextfast = fast.nextslow.next = Nonereturn dummy.next


推荐阅读
author-avatar
手机用户2502852635_269
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有