移除链表元素-力扣

一道基础的链表相关题目,在删除时对头节点进行单独处理。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeElements(ListNode* head, int val) {while(head != NULL && head->val == val){ListNode * t = head;head = head->next;delete t;}ListNode * cur = head;while(cur != NULL && cur->next != NULL){if(cur->next->val == val){ListNode * t = cur->next;cur->next = cur->next->next;delete t;}else{cur = cur->next;}}return head;}
};

另外一种写法是设置一个虚拟节点指向头节点,这样就无需对头节点进行单独处理,最后将head指向虚拟节点的下一个节点。

class Solution {
public:ListNode* removeElements(ListNode* head, int val) {ListNode* dummyHead = new ListNode(0); // 设置一个虚拟头结点dummyHead->next = head; // 将虚拟头结点指向head,这样方便后面做删除操作ListNode* cur = dummyHead;while (cur->next != NULL) {if(cur->next->val == val) {ListNode* tmp = cur->next;cur->next = cur->next->next;delete tmp;} else {cur = cur->next;}}head = dummyHead->next;delete dummyHead;return head;}
};

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

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

相关文章

【vue部署】Apache部署vue项目

Apache部署vue项目 Apache 下载安装(windows)1. 下载2. 安装3. 启动服务 vue 部署配置1. 基础配置2. 解决页面刷新问题 Apache 下载安装(windows) 1. 下载 Apache 2.4.59 下载地址:httpd-2.4.59-240404-win64-VS17.zip Visual C Redistributable for Visual Studi…

Go语言通过goroutine实现多协程文件上传

文章推荐 1 作为程序员,开发用过最好用的AI工具有哪些? 2 Github Copilot正版的激活成功,终于可以chat了 3 idea,pycharm等的ai assistant已成功激活 4 新手如何拿捏 Github Copilot AI助手,帮助你提高写代码效率 5 Jetbrains的a…

AWS EC2 连接 AWS RDS(Mysql)

1 创建RDS数据库 点击创建数据库 引擎选项 模板 设置 连接 2 EC2连接Mysql $ sudo yum list mariadb* Installed Packages mariadb-connector-c.x86_64 3.1.13-1.amzn2023.0.3 amazonl…

swig4.2.1压缩包中里面没有找到swig.exe

官网:Simplified Wrapper and Interface Generator C转 C# 采用Swig.exe 打开Example示例的解决方案:sln 生成 即可查看如何调用和使用.i文件 但是:迅雷不管下载哪个版本都是没有exe 官网说了自带。很迷很迷~ 下载其他版本的时候发现&…

TikTok矩阵管理系统:品牌增长的新引擎

随着社交媒体的快速发展,TikTok已成为全球最受欢迎的短视频平台之一。品牌和企业纷纷涌入这个平台,寻求新的增长机会。然而,随着内容的激增和用户群体的多样化,管理TikTok账号变得越来越复杂。这时,TikTok矩阵管理系统…

使用第三方的PyCharm开发工具

目录 PyCharm下载 PyCharm安装 运行PyCharm 创建工程目录 编写“hello world”程序 在同一个工程下创建多个程序文件 运行程序的多种方法 保存程序 关闭程序或工程 删除程序 打开最近的工程 调试断点 熟悉PyCharm开发环境 设置Python解析器 输出彩色控制台文字及…

50道题目!Python、SQL数据库、AB测试、业务分析、机器学习都在这里了!

介绍 每日一题系列已经更新了50道题目啦! 题目难度为初级到中级,涵盖了Python、SQL数据库、AB测试、业务分析、机器学习五大主题,适合初学者和有一定基础的朋友。 原文链接: 50道题目!Python、SQL数据库、AB测试、业务分析、机器…

pycharm 关闭项目卡死

PyCharm2023.3.4 关闭一直卡在 closing projects 解决办法: 打开PyCharm, 选择 Help -> Find Action -> 输入 Registry -> 禁用ide.await.scope.completion

10G SFP双口万兆以太网控制器,高速光口网络接口卡

2-Port 10G SFP NIC 是一款高速网 络接口卡,采用了 PCI Express 3.0 x8 接口,支持双 端口万兆以太网,具有高性能、高可靠性、低功耗等 优点,是数据中心、云计算、虚拟化等领域的理想选 择。 支持多种网络协议,如 …

【加密与解密(第四版)】第十六章笔记

第十六章 脱壳技术 16.1 基础知识 壳的加载过程:保存入口参数、获取壳本身需要使用的API地址、解密原程序各个区块的数据、IAT的初始化、重定位项的处理、HOOK API、跳转到程序原入口点 手动脱壳步骤:查找真正的入口点、抓取内存映像文件、重建PE文件&…

深度学习之基于Pytorch框架新冠肺炎CT图像分类

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着新冠肺炎(COVID-19)的全球爆发,快速、准确地诊断疾病成…

MySQL 日志有了解?binlog、redolog、undolog 分别有什么作 用、有什么区别?

MySQL 是一款流行的关系型数据库,其日志是其关键功能之一。MySQL 包括三种类型的日志,分别是binlog、 redolog 和 undolog,它们分别有不同的作用和特点。 binlog ,binlog(Binary log)是 MySQL 中的二进制日志文件,用于…

Python筑基之旅-MySQL数据库(二)

目录 一、第三方库 1、mysql-connector-python 1-1、由来 1-2、优缺点 1-2-1、优点 1-2-1-1、官方支持 1-2-1-2、纯Python实现 1-2-1-3、全面支持 1-2-1-4、兼容性 1-2-1-5、易于使用 1-2-2、缺点 1-2-2-1、性能 1-2-2-2、安装 1-2-2-3、社区支持 1-2-2-4、扩…

Android-虚拟定位

使用虚拟定位软件模拟位置即可 链接: https://pan.baidu.com/s/1JyoGkxB97YyZSDH_yAzKPQ?pwd9cbw 提取码: 9cbw 复制这段内容后打开百度网盘手机App,操作更方便哦

1020. 飞地的数量

1020. 飞地的数量 原题链接:完成情况:解题思路:参考代码:_1020飞地的数量_dfs_定义方向_1020飞地的数量_bfs_定义方向 错误经验吸取 原题链接: 1020. 飞地的数量 https://leetcode.cn/problems/number-of-enclaves/…

十年磨一剑“2024成都电子信息展会”推动电子产业全球发展

2024成都电子展,招商工作已接近尾声,这场盛大的展会不仅是电子信息行业的一次盛会,更是中国西部电子信息产业发展的重要里程碑。自2013年起,中国(西部)电子信息博览会便选择成都作为其永久的举办地&#xf…

windows系统jupyter lab安装和配置:本地开发、探索大模型的利器

前言 在安装好anaconda之后,系统默认就安装好了一个jupyter notebook的工具,该工具可以在网页端运行,类似这样: 提供了一个按行运行的python运行环境,每一步的输出都可以打印到界面,对于我们初学python&am…

JAVA语音播报

JAVA语音播报 提示:难点,常规语音播放只是播放一段音乐,这个比较简单。本文介绍将文字语音播放出来,并且可以兼容windows、linux 语音播报在编码过程中,我们主要需从以下几个核心层面进行深入考量。 1.使用JACOB开源…

sql小总结

SQL的一些使用技巧&#xff1a; 1. null 我们在进行/<>/in/not in等判断时&#xff0c;null会不包含在这些判断条件中&#xff0c;所以在对null的处理时可以使用nvl或者coalesce函数对null进行默认转换。&#xfeff; 2. select * 尽可能提前对列进行剪裁&#xff0c…

android 在 Activity 的 onCreate 中获取View 的宽高

view 的 post 执行时&#xff0c;首先会判断view 的 mAttatchInfo 是否为空&#xff0c;如果不为空&#xff0c;则将Runnable 添加到mAttachInfo.handler 的 UI线程MessageQueue 中&#xff1b;如果为空&#xff0c;则先将Runnable 暂存在view 的类为HandlerActionQueue的mRunQ…