每日一题---移除链表元素

news2024/9/23 11:25:11

文章目录

  • 前言
  • 1.题目
  • 2.分析思路
  • 3.参考代码


前言

Leetcode–-移除链表元素


1.题目

在这里插入图片描述


2.分析思路

首先要创建一个新的链表,在定义三个指针,newHead,newTail和pcur,分别代表新链表头,新链表尾以及用于遍历原链表。
其次是,如果pcur->val!=val,那么newTail下一个结点指向pcur(newTail->next=pcur),然后newTail往后移动(newTail=newTail->next),pcur也要往后一动,如果pcur->val==val,那么只需要pcur往后移动,直到遍历完原链表。
还有一个是在遍历完以后要将newTail的指向的指针设置为NULL
最后便要考虑特殊情况,例如示例2中,head=[],是一个空链表,那么在最开始便要判断head是否是空链表。
在这里插入图片描述


3.参考代码

typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val) {
    if(head==NULL)
        return head;
    ListNode* pcur=head;
    ListNode* newHead=NULL;
    ListNode*newTail=NULL;
    while(pcur)
    {
        //如果pcur->val!=val,那么节点要尾插到新链表中
        if(pcur->val!=val)
        {
            //判断新链表是否为空
            if(newHead==NULL)
            {
                newHead=newTail=pcur;
            }else{
                newTail->next=pcur;
                newTail=newTail->next;
            }
        }
        pcur=pcur->next;
    }
    if(newTail)
        newTail->next=NULL;
    return newHead;
}

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

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

相关文章

LinkedBlockingQueue源码

LinkedBlockingQueue源码 LinkedBlockingQueue介绍 【1】LinkedBlockingQueue是一个基于链表实现的阻塞队列,默认情况下,该阻塞队列的大小为Integer.MAX_VALUE,由于这个数值特别大,所以 LinkedBlockingQueue 也被称作无界队列&a…

RuoYi-Vue-Plus (SaToken 注解鉴权)

一、SaInterceptor 注解鉴权和路由拦截鉴权 拦截器:SaInterceptor 实现类位置: cn.dev33.satoken.interceptor.SaInterceptor 功能:Sa-Token 综合拦截器,提供注解鉴权和路由拦截鉴权能力 /*** 创建一个 Sa-Token 综合拦截器&…

一句话或一张图讲清楚系列之——IDELAYE2的用法

主要参考: Xilinx IDELAYE2应用笔记及仿真实操-CSDN博客 xilinx原语介绍及仿真——IDELAYE2 & IDELAYCTRL_idelayctrl原语使用说明-CSDN博客 1 原理 IDELAYE2一般用于对输入lvds高速信号进行延时微调,可以把时钟和数据都单独微调;如果数…

Spring Cloud学习笔记(Feigh):简介,实战简单样例

这是本人学习的总结,主要学习资料如下 - 马士兵教育 1、Netflix Feign简介2、Open Feign的简单样例2.1、dependency2.2、代码样例 1、Netflix Feign简介 Netfilx Feign是用来帮助发送远程服务的,它让开发者觉得调用远程服务就像是调用本地方法一样&…

【第4讲】XTuner 微调 LLM:1.8B、多模态、Agent

目录 1 简介2 基础知识2.1 finetune简介2.2 xtuner简介2.2.1 技术架构2.2.2 快速上手xtuner 2.3 8GB显存玩转LLM(intern1.8b)2.3.1 flash attention vs deepspeed zero2.3.2 相关版本更新和使用 2.4 多模态LLM2.4.1 多模态LLaVA基本原理简介2.4.2 快速上…

【xhs爬虫软件】把小红书博主发布笔记API接口user_posted接口封装成GUI采集工具!

用Python开发的爬虫采集软件,可自动抓取小红书博主的已发布笔记。 小红书的已发布笔记接口URL: # 请求地址 posted_url https://edith.xiaohongshu.com/api/sns/web/v1/user_posted开发者模式分析过程: 进而封装成GUI界面软件,…

Vue 3中的ref和toRefs:响应式状态管理利器

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

05_Flutter屏幕适配

05_Flutter屏幕适配 一.屏幕适配方案 通过指定基准屏宽度,进行适配,基准屏宽度取决于设计图的基准宽度,以iphone 14 pro max为例, devicePixelRatio 物理宽度 / 逻辑宽度(基准宽度) iphone 14 pro max的物理尺寸宽度为1290&…

opencv_5_图像像素的算术操作

方法1:调用库函数 void ColorInvert::mat_operator(Mat& image) { Mat dst; Mat m Mat::zeros(image.size(), image.type()); m Scalar(2, 2, 2); multiply(image, m, dst); m1 Scalar(50,50, 50); //divide(image, m, dst); //add(im…

【web开发网页制作】html+css家乡长沙旅游网页制作(4页面附源码)

家乡长沙网页制作 涉及知识写在前面一、网页主题二、网页效果Page1、主页Page2、历史长沙Page3、著名人物Page4、留言区 三、网页架构与技术3.1 脑海构思3.2 整体布局3.3 技术说明书 四、网页源码HtmlCSS 五、源码获取5.1 获取方式 作者寄语 涉及知识 家乡长沙网页制作&#x…

promise笔记

1.介绍 之前的异步编程都是回调函数(数据库操作、ajax、定时器、fs读取文件 ) promise是es6异步编程新的解决方案,是一个构造函数 优点:支持链式调用,可以解决回调地狱,可以指定回调函数 2.使用 functio…

Dubbo 和 Spring Cloud 的区别

根据微服务架构在各方面的要素,看看 Spring Cloud 和 Dubbo 都提供了哪些支持。 使用 Dubbo 构建的微服务架构就像组装电脑,各环节我们的选择自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心…

Spring Kafka—— KafkaListenerEndpointRegistry 隐式注册分析

由于我想在项目中实现基于 Spring kafka 动态连接 Kafka 服务,指定监听 Topic 并控制消费程序的启动和停止这样一个功能,所以就大概的了解了一下 Spring Kafka 的几个重要的类的概念,内容如下: ConsumerFactory 作用:…

探索数学语言模型的前沿进展——人工智能在数学教育和研究中的应用

数学一直被认为是科学的基石,对于推动技术进步和解决现实世界问题具有重要意义。然而,传统的数学问题解决方式正面临着数字化转型的挑战。MLMs的出现,预示着数学学习和研究方式的一次革命。 MLMs,包括预训练语言模型(…

STM32F1串口

文章目录 1 数据通信的基础概念1.11.21.31.41.5 2 串口(RS-232)2.12.22.32.42.5 3 STM32的USART3.13.23.33.53.9 USART寄存器介绍 4 HAL库外设初始化MSP回调机制5 HAL库中断回调机制6 USART/UART异步通信配置步骤 (包括HAL库相关函数)6.16.26…

SDN基础知识

🌈个人主页:小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 🏆所属专栏&#xff1…

SQLite的DBSTAT 虚拟表(三十六)

返回:SQLite—系列文章目录 上一篇:SQLite运行时可加载扩展(三十五) 下一篇:SQLite—系列文章目录 1. 概述 DBSTAT 虚拟表是一个只读的同名虚拟表,返回 有关用于存储内容的磁盘空间量的信息 的 SQLite 数据库。 示例用例…

【数据结构(邓俊辉)学习笔记】绪论03——递归分析

文章目录 意图目标1. 线性递归数组求和线性递归减而治之 2. 递归分析递归跟踪递推方程典型递推方程 3. 递归模式多递归基多向递归 4. 递归消除空间成本尾递归及其消除 5. 二分递归分而治之数组求和 6 . 效率7. 算法设计优化总结前n项计算算法 意图 数据结构中经常用到递归&…

VScode配置MySQL

1、进入官网,下载MySQL 地址:dev.mysql.com/downloads/mysql/ ZIP方式下载,选择本地的路径进行解压。 2、配置环境变量 形如下方的路径: D:\software\Mysql\mysql-8.3.0-winx64\bin 即是解压位置后文件夹下的bin文件路径 3、初…

在 VSCode 中运行 C#

文章目录 1.为何选择VSCode而不是VS2.操作步骤2.1 安装.NET2.2 安装扩展插件2.2.1 C#2.2.2 Code Runner 3.新建工程HelloCsharp 1.为何选择VSCode而不是VS VS实在是太“重”了,如果只是写一些简单控制台程序进行调试,则完全没必要 2.操作步骤 2.1 安装…