热门标签 | 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


推荐阅读
  • Python 语言本身并不直接支持数组结构,但可以通过 Python 列表(List)来实现类似的功能。对于需要数组特性的应用,还可以考虑使用 NumPy 库。 ... [详细]
  • 本人最近在学习python,在看了一些教程后,用python写了一个简单的云音乐播放器,下面把主要代码贴上来,其中用到了gi ... [详细]
  • 本文介绍如何利用Python中的Epoll机制构建一个高效的Web服务器,该服务器能够处理多个并发连接,并向每个连接的客户端返回预定义的响应文本。通过使用Epoll,服务器可以实现高性能的I/O多路复用。 ... [详细]
  • 本文档详细介绍了Robot Framework的基础知识、安装配置方法及其实用技巧。从环境搭建到编写第一个测试用例,涵盖了一系列实用的操作指南和最佳实践。 ... [详细]
  • 本文介绍如何通过自定义控件LoadLayout实现ListView的上拉加载更多和下拉刷新功能。LoadLayout支持上拉加载,而下拉刷新则利用了android.support.v4.widget.SwipeRefreshLayout组件。 ... [详细]
  • 本文介绍了如何通过安装 VirtualBox 和 Vagrant 来快速搭建和管理虚拟机环境。我们将详细探讨如何选择合适的 Box 镜像,以及如何高效地下载、添加和管理这些镜像。 ... [详细]
  • 在链表中删除指定值的节点题目描述给出一个链表和一个整数num,输出删除链表中节点值等于num的节点之后的链表。输入描述:第一行一个整数n ... [详细]
  • KKCMS代码审计初探
    本文主要介绍了KKCMS的安装过程及其基本功能,重点分析了该系统中存在的验证码重用、SQL注入及XSS等安全问题。适合初学者作为入门指南。 ... [详细]
  • 本文详细介绍了HTML5中的文件操作API,包括FileList、Blob、File和FileReader等重要JavaScript对象的接口定义及其功能特性。 ... [详细]
  • 本文探讨了使用Lighttpd与FastCGI实现分布式部署的方法。通过在中心服务器上配置Lighttpd负责请求转发,同时在多个远程服务器上运行FastCGI进程来处理实际业务逻辑,从而提高系统的负载能力和响应速度。 ... [详细]
  • 利用NVM实现Node.js多版本管理
    本文详细介绍如何使用NVM(Node Version Manager)进行Node.js的多版本管理,包括安装配置、版本切换等操作。 ... [详细]
  • Skyeye 3.3.8 版本更新:任务管理与多班次考勤优化
    最新发布的 Skyeye 3.3.8 版本带来了多项改进,特别是在任务管理和多班次考勤统计方面。访问以下链接获取更多详情:ERP 系统 - https://gitee.com/doc_wei01/erp-pro,OA 系统 - https://gitee.com/doc_wei01/skyeye,以及项目开发计划 - https://docs.qq.com/doc/DQlRxcVRMWWVjbU1i?_from=1&disableReturnList=1。 ... [详细]
  • 使用YUM在Linux虚拟机中安装MySQL
    本文详细介绍了如何在Linux虚拟机环境中通过YUM包管理器安装MySQL数据库的过程。包括环境准备、版本选择、安装步骤及启动验证等关键环节。 ... [详细]
  • 本文探讨了在Java应用中,由于对象间循环引用导致重写toString方法时出现StackOverflowError的具体情况,并提供了有效的解决方案。 ... [详细]
  • 使用DataGridViewComboBoxColumn实现数据绑定与操作
    本文详细介绍如何在DataGridView中使用DataGridViewComboBoxColumn来加载、选择和保存数据库中的数据,提供具体的实现步骤和示例代码。 ... [详细]
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社区 版权所有