LeetCode刷题:27.移除链表元素

文章目录

  • ⭐️27.移除链表元素⭐️
    • 🔐题目描述
    • 💡解题思路
    • 🔑代码

本题的题解代码是用C语言编写的。

📒博客主页:2023Fighting的博客主页
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📌本文由2023Fighting原创,CSDN首发!
📆首发时间:🌴2023年10月30日🌴
💬参考在线编程网站:🌐牛客网🌐力扣
博主的码云gitee,平常博主写的程序代码都在里面。
🙏文章仅供参考,如果发现错误,请及时告知我哦!感谢感谢!

题目链接:203. 移除链表元素

⭐️27.移除链表元素⭐️

🔐题目描述

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回新的头节点

示例 1:
在这里插入图片描述

输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]

示例 2:

输入:head = [], val = 1
输出:[]

示例 3:

输入:head = [7,7,7,7], val = 7
输出:[]

💡解题思路

创建一个带哨兵位的空链表,将不等于 val的节点尾插到新链表中去。
时间复杂度:O(N),空间复杂度:O(1)。
这里使用两个指针,一个用来遍历链表记为 cur,一个用来记录新链表的尾,记为 ptail。
算法流程如下:

  1. 判断 cur的 val是否等于 val。
    如果等于,保存 cur的 next,删除当前节点 cur,cur = next,迭代着往后遍历;如果不相等,将 cur尾插到新链表中,ptail->next = cur,跟新链表的尾,ptail = ptail->next,cur = cur->next,迭代着往后遍历,直到遍历完整个链表。

图解如下:
在这里插入图片描述

🔑代码

struct ListNode* removeElements(struct ListNode* head, int val)
{//创建哨兵位的头节点struct ListNode* phead = (struct ListNode*)malloc(sizeof(struct ListNode));//记录新链表的尾节点struct ListNode* tail = phead;//遍历链表删除节点struct ListNode* cur = head;while (cur){if (cur->val == val){struct ListNode* next = cur->next;free(cur);cur = next;}else{tail->next = cur;tail = tail->next;cur = cur->next;}}tail->next = NULL;//释放头节点struct ListNode* del = phead;phead = phead->next;free(del);return phead;
}

至此,本片文章就结束了,若本篇内容对您有所帮助,请三连点赞,关注,收藏支持下。
创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !!!
在这里插入图片描述

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

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

相关文章

灯串上亚马逊加拿大合规标准CSA认证如何办理?

灯串 灯串和配件都是插头连接的便携式、临时性商品,最大额定输入电压为 120 伏。 本政策适用于季节性照明、装饰性灯具以及灯串。 亚马逊灯串政策 根据亚马逊的要求,所有季节性和装饰性灯串均应经过检测,并且遵守下列法规、标准和要求&…

2023年第七期丨全国高校大数据与人工智能师资研修班

全国高校大数据与人工智能 师资研修班邀请函 2023年第七期 线下班(昆明): 数据采集与机器学习实战 线上班(七大专题): PyTorch深度学习与大模型应用实战 数据采集与处理实战 大数据分析与机器学习实战 大数据技…

轻量封装WebGPU渲染系统示例<7>-材质多pass(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/MultiMaterialPass.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据和渲染机制分离。 …

从零开始学习PX4源码0(固件下载及编译)

目录 文章目录 目录摘要1.重点学习网址2.固件下载1.下载最新版本固件2.下载之前版本固件 摘要 本节主要记录从零开始学习PX4源码1(固件下载)的过程,欢迎批评指正!!! 下载固件主要分为两个版本,之前稳定版本和最新官网…

浅析 TLS(ECDHE)协议的握手流程(图解)

前言 通过 wireshark 抓取 HTTPS 包,理解 TLS 1.2 安全通信协议的握手流程。 重点理解几个点: TLS 握手流程:通过 wireshark 抓取 HTTPS 包理解。协商加密:双方通过 ECDHE 椭圆曲线的密钥交换算法,协商出共享的 会话…

后台管理(一)

1、管理员登录 1.1、创建Md5加密工具类: public static String md5(String source) {//判断source是否生效if (source null || source.length() 0) {//不是有效的数据throw new RuntimeException(CrowdConstant.MESSAGE_STRING_INVALIDATE);}String algorithm &…

【Python 常用脚本及命令系列 9 -- 图片文字识别 EasyOCR使用】

文章目录 1.1 EasyOCR 介绍1.1.1 EasyOCR 安装1.1.2 EasyOCR 使用方法1.1.2.1 EasyOCR 支持的语言种类1.1.2.2 EasyOCR 支持的图像格式 EasyOCR 提高图片文字识别正确率1.3 问题总结 1.1 EasyOCR 介绍 Python中有一个不错的OCR库-EasyOCR,在GitHub已有9700 star。它…

SRA ToolKit (sra-tools) 的安装和使用

文章目录 前言从哪里下载 SRA ToolKit如何安装怎么用 前言 事情的起因是从NCBI SRA Database下载数据时的一个报错:   path not found while resolving tree within virtual file system module - SRR17****** cannot be found 上次下载数据的时候还是上次&…

Javascript基础-BOM

文章目录 BOM——Browser Object Model定时器--延时函数 JS执行机制具体流程 三个常见对象location对象navigator对象history对象 本地存储介绍sessionStoragesessionStorage 存储复杂数据类型字符串拼接 正则表达式元字符 BOM——Browser Object Model 浏览器对象模型&#x…

多输入多输出 | Matlab实现k-means-LSTM(k均值聚类结合长短期记忆神经网络)多输入多输出组合预测

多输入多输出 | Matlab实现k-means-LSTM(k均值聚类结合长短期记忆神经网络)多输入多输出组合预测 目录 多输入多输出 | Matlab实现k-means-LSTM(k均值聚类结合长短期记忆神经网络)多输入多输出组合预测预测效果基本描述程序设计参…

你被骗了吗?别拿低价诱骗机器视觉小白,4000元机器视觉系统怎么来的?机器视觉工程师自己组装一个2000元不到,还带深度学习

淘宝闲鱼,大家搜搜铺价格,特别是机器视觉小白。 机架:(新的)200元以下。(看需求,自己简单打光,买个50元的。如果复杂,就拿给供应商免费打光) 相机,镜头:&am…

【OpenCV实现图像:用Python生成图像特效,报错ValueError: too many values to unpack (expected 3)】

文章目录 概要读入图像改变单个通道黑白特效颜色反转将图像拆分成四个子部分 概要 Python是一种功能强大的编程语言,也是图像处理领域中常用的工具之一。通过使用Python的图像处理库(例如Pillow、OpenCV等),开发者可以实现各种各…