LeetCode:83和82.删除排序链表中的重复元素I,II

这两题算是链表的基础题,就遍历删除没啥特点,

83甚至不需要考虑第一个结点的特殊情况,属实是名副其实的easy了

LeetCode:21.合并两个有序链表之第一次的特殊情况-CSDN博客

83. 删除排序链表中的重复元素 - 力扣(LeetCode)

82. 删除排序链表中的重复元素 II - 力扣(LeetCode) 

目录

题目:

​编辑 思路:

代码+注释:

83:

82:

 每日表情包:


题目:

 思路:

遍历,就看你做的熟不熟悉,快不快,由于是遍历,也没开辟新的空间,所以是时O(n),空O(1)

代码+注释:

83:
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* deleteDuplicates(struct ListNode* head) {struct ListNode* pfast = head, *pslow = head;//本来想写个双指针,不知道起什么名字,就起了个快慢,不过这里的实现更像是pslow 为pcur之意,pfast为ptmp之意//pcur是当前指针之意,ptmp为临时指针之意while(pslow && pslow->next){pfast = pslow->next;if(pfast->val == pslow->val){pslow->next = pfast->next;free(pfast);}else{pslow = pslow->next;}}return head;
}
82:
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* deleteDuplicates(struct ListNode* head) {//打眼一看就知道影响到了第一个结点,//虽然内心一直想尝试一下造个二级指针,存head来玩,不过还是以后玩,现阶段先熟悉基本玩法//写个正规一点的malloc吧struct ListNode* ptmp = (struct ListNode*)malloc(sizeof(struct ListNode));assert(ptmp);struct ListNode* phead = ptmp;ptmp = NULL;phead->next = head;//现有phead 和ptmpstruct ListNode* pcur = phead;//这次相比于删除排序链表中的重复元素I就明现舒服多了//思路就是遍历删除,就是考虑要造几个变量,while(pcur && pcur->next && pcur->next->next){phead->val = pcur->next->val;if(pcur->next->val == pcur->next->next->val){while(pcur && pcur->next){ptmp = pcur->next;if(phead->val == pcur->next->val){pcur->next = pcur->next->next;free(ptmp);}else{break;}}}else{pcur = pcur->next;}}ptmp = phead->next;free(phead);return ptmp;
}

 每日表情包:

点赞点赞……点赞…求求啦!一个免费的赞可以让我出产更多的……水……文 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/681788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TeamCity创建git项目Timed out 超时的一个解决办法

问题: 当自己: ping github.com从本地推送到远程仓库浏览器浏览www.github.com ——都没有问题 但是在teamcity创建工程的时候就超时: 或者多试几次,终于成功了,然后构建的时候半途超时报错。。。。。 一种解决办…

Vue3快速上手(四)ref之基本类型响应式数据

一、ref之基本类型响应式数据 1.1 基本语法 import { ref } from vuelet x ref(初始值)console.log(xxx --> , x.value);x为一个RefImpl对象,该对象的value属性为实际值,在script里需要操作x.value来改变数据的值,在页面里则可以直接使…

Django学习全纪录:创建第一个Django项目,如何使用Django开发⼀个web应用

导言 在上一篇文章里,我们对Django的开发环境进行了学习以及搭建,在上一篇文章里,同时也为大家介绍了安装、验证、修改默认镜像源等知识。 在这一篇文章里,我们就正式开始我们的Django开发之旅,创建我们的第一个项目,做一些较为简单且必需的前置工作。 如何创建Django项目…

【MySQL】学习约束和使用图形化界面创建表

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-iqtbME2KmWpQFQSt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

RocksDB:高性能键值存储引擎初探

在现代的分布式系统和大数据应用中,一个高效、可靠的存储引擎是不可或缺的。RocksDB,由Facebook于2012年开发并随后开源,正是为了满足这类需求而诞生的。它是一个持久化的键值存储系统,特别适合在闪存(Flash&#xff0…

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-事件event

目录 一、事件基本概念二、事件运行机制三、事件开发流程四、事件使用说明五、事件接口坚持就有收获 一、事件基本概念 事件是一种实现任务间通信的机制,可用于实现任务间的同步,但事件通信只能是事件类型的通信,无数据传输。一个任务可以等…

Linux——网络通信TCP通信常用的接口和tco服务demo

文章目录 TCP通信所需要的套接字socket()bind()listen()acceptconnect() 封装TCP socket TCP通信所需要的套接字 socket() socket()函数主要作用是返回一个描述符,他的作用就是打开一个网络通讯端口,返回的这个描述符其实就可以理解为一个文件描述符&a…

代码随想录刷题笔记 DAY 25 | 组合问题 No.77 | 组合求和III No.216 | 电话号码的字母组合 No.17

文章目录 Day 2501. 组合问题(No. 77)2.1 题目2.2 笔记2.3 代码 02. 组合求和III(No. 216)2.1 题目2.2 笔记2.3 代码 03. 电话号码的字母组合(No. 17)3.1 题目3.2 笔记3.3 代码3.4 补充 Day 25 01. 组合问…

InstantBox:开箱即用的临时 Linux 环境

在云计算和虚拟化技术日益成熟的今天,我们有时需要一个快速、简单、临时的 Linux 环境来进行各种任务。这就是 InstantBox 的用武之地。 什么是 InstantBox? InstantBox 是一个开源项目,它可以快速启动临时的 Linux 系统,并提供…

微软Bing地图获取栅格瓦片或图块

bing地图获取栅格瓦片或图块 获取元数据 https://dev.virtualearth.net/REST/v1/Imagery/Metadata/{imagerySet}?key{BingMapsKey}imagerySet:要为其请求元数据的影像类型。官方说中国支持以下两个值:RoadOnDemand、VibrantDark BingMapsKey&#xff…

669. 修剪二叉搜索树

给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。…

【前沿技术杂谈:迁移学习】欧洲人工智能法案对人工智能开发者的意义 [2023 年 12 月更新]

【前沿技术杂谈:迁移学习】欧洲人工智能法案对人工智能开发者的意义 [2023 年 12 月更新] 定义、一般原则和禁止做法人工智能系统开发者基于风险的义务固定和通用人工智能开发人员(第 3/28 条)基础模型的提供者(第 28b…

C++笔记:类与对象的语法

文章目录 1 简单认识面向过程与面向对象1.1 面向过程1.2 面向对象 2 类的引入:struct -> class3 类的定义3.1 class 定义类的语法3.2 成员变量的命名建议 4 类的访问限定符4.1 class 和 struct 的区别4.2 C更喜欢用class定义类的原因 5 类的作用域5.1 声明定义合…

Cost S-curve

成本S曲线 Cost S-curve 每个月成本预算,柱形图 每个月成本累积(合计):成本S曲线,折线图,但是肯定都是上升的 echarts图表:

java客运管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java客运管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&#…

Java实现中学生家校互联系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生管理模块2.2 课堂表现模块2.3 考试成绩模块2.4 家校留言模块2.5 校园通知模块 三、系统设计3.1 用例设计3.2 实体类设计3.2.1 课堂表现实体类设计3.2.2 考试成绩实体类设计3.2.3 家校留言实体类设计3.2.4 校园通知实…

现代化端口扫描工具RustScan

今天是大年初五,喜迎财神 ,祝大家✔️顺风顺水 ✔️诸事如意 ✔️财源滚滚 ✔️大吉大利 顺便提一下,老苏的博客启用了新域名: https://laosu.tech 什么是 RustScan ? RustScan 是一款现代化的端口扫描器。能快速找到端…

AutoGen实战应用(三):多代理协作的数据可视化

之前我完成了关于AutoGen的两篇博客,还没有读过这两篇博客的朋友可以先阅读以下,这样有助于对AutoGen的初步了解: AutoGen实战应用(一):代码生成、执行和调试_autogen 支持的model-CSDN博客 AutoGen实战应用(二):多代…

Vue3.0(六):VueX 4.x详解

Vuex4状态管理 什么是状态管理 在开发中,我们的应用程序需要处理各种各样的数据,这些数据需要保存在应用程序的某一个位置,对于这些数据的管理,就是 状态管理目前前端项目越来越复杂,多组件共享同一数据的状态很常见…

【排序】归并排序

归并排序 动图演示: 基本思想:分治思想 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子…