Leetcode-移除链表元素

203. 移除链表元素

题目

给你一个链表的头节点 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
输出:[]

提示:

  • 列表中的节点数目在范围 [0, 104] 内
  • 1 <= Node.val <= 50
  • 0 <= val <= 50

代码(解析在注释)

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */

typedef struct ListNode ListNode ;
struct ListNode* removeElements(struct ListNode* head, int val) {
    // 思路我们直接遍历链表,把不是val的数据放在一个新的链表中(c创建新的链表)
    // 创建一个新链表的头和尾
    ListNode* newhead, *newtail;
    // 初始化NULL
    newhead = newtail = NULL;
    // 创建一个小弟
    ListNode* tmp = head;
    // 利用循环遍历
    while (tmp) {
        // 判断节点是否为val,不是val就直接尾插到新的链表中
        if (tmp->val != val) {
            // 判断新链表是否为空,这里只需要判断head
            if (newhead == NULL) {
                // head 和
                // tail都指向第一个节点,所以这里就连续赋值tmp,就有了第一个节点
                newhead = newtail = tmp;
            }
            // 不是为空的情况就直接用tail->next
            else {
                newtail->next = tmp;
                newtail = newtail->next;
            }
        }
        tmp = tmp->next;
    }
    //链表有可能一开始就是NULL,所以这里需要判断一下链表是否为NULL
    if(newtail)//需要判断尾节点newtail
    newtail->next = NULL;
    return newhead;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一张图教你看懂亚马逊云科技的超过200个云服务

亚马逊云科技&#xff08;AWS&#xff09;是业界服务种类最全面的☁️厂商&#xff0c;目前有超过200种服务&#xff0c;那这么多服务能否一次性把他们都记住呢&#xff1f; 小李哥给大家带来一张AWS 200项服务列表&#xff0c;大家一眼就能看懂这些服务的使用场景。欢迎大家在…

【HarmonyOS 4+NEXT】开发工具安装指南

&#x1f64b;‍ 一日之际在于晨 ⭐本期内容&#xff1a;开发工具安装 &#x1f3c6;系列专栏&#xff1a;鸿蒙HarmonyOS4NEXT&#xff1a;探索未来智能生态新纪元 文章目录 前言准备工作下载开发工具安装开发工具配置开发环境总结 前言 随着科技的不断进步&#xff0c;智能设…

硬阈值什么意思?

硬阈值是一种非线性函数&#xff0c;常用于信号处理和数据压缩中的阈值处理。具体来说&#xff0c;硬阈值将输入信号中小于或等于给定阈值的值设为零&#xff0c;而大于阈值的值保持不变。数学表示如下&#xff1a; Hard(x, T) { 0, if |x| ≤ T; x, if |x| > T } 其中&a…

【电控笔记6.2】拉式转换与转移函数

概要 laplace&#xff1a;单输入单输出&#xff0c;线性系统 laplace 传递函数 总结

芯洲SCT55610三相栅极驱动器,打造高效无刷直流电机系统

近年来的&#xff0c;无刷直流电机&#xff08;Brushless DC Motor, BLDC&#xff09;在工业、汽车、家电、医疗器械等各个领域得到广泛应用。相对于传统有刷电机&#xff0c;BLDC电机具有以下优势&#xff1a;高效率、寿命长、低噪音、小型化和精确控制。这些优势使得BLDC电机…

Springboot集成Ehcache3实现本地缓存

如果只需要在单个应用程序中使用本地缓存&#xff0c;则可以选择Ehcache&#xff1b;它支持内存和磁盘存储&#xff0c;这里不以注解方式演示&#xff0c;通过自己实现缓存管理者灵活控制缓存的读写&#xff1b; 1、引入相关依赖 <!-- ehcache3集成start --><depende…

ENSP-旁挂式AC

提醒&#xff1a;如果AC不能成功上线AP&#xff0c;一般问题不会出在AC上&#xff0c;优先关注AC-AP线路上的二层或三层组网的三层交换机 拓扑图 管理VLAN&#xff1a;99 | 业务VLAN&#xff1a;100 注意点&#xff1a; 1.连接AP的接口需要打上pvid为管理vlan的标签 2.AC和…

华为配置通过流策略实现流量统计

配置通过流策略实现流量统计示例 组网图形 图1 配置流策略实现流量统计组网图 设备 接口 接口所属VLAN 对应的三层接口 IP地址 SwitchA GigabitEthernet1/0/1 VLAN 10 - - GigabitEthernet1/0/2 VLAN 20 - - GigabitEthernet1/0/3 VLAN 10、VLAN 20 - - S…

【简单讲解下Stylus入门使用方法】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

树--平衡二叉树(AVL树)

平衡二叉树画图网站 一、有序二叉树可能存在的问题 给一个数列{1,2,3,4,5,6}&#xff0c;要求创建一颗二叉排序树&#xff08;BST&#xff09;并分析问题所在。 二、平衡二叉树的基本介绍 平衡二叉树具有以下特点&#xff1a; 它是一颗空树或它的左右两个子树的高度差的绝对…

【多线程】单例模式 | 饿汉模式 | 懒汉模式 | 指令重排序问题

文章目录 单例模式一、单例模式1.饿汉模式2.懒汉模式&#xff08;单线程&#xff09;3.懒汉模式&#xff08;多线程&#xff09;改进 4.指令重排序1.概念2.question:3.解决方法4总结&#xff1a; 单例模式 一、单例模式 单例&#xff0c;就是单个实例 在有些场景中&#xff0c…

艾体宝方案 | ITT-Profitap IOTA——铁路运输的远程网络捕获和故障排除方案

在移动互联时代&#xff0c;铁路运输的数字化转型已成不可逆转的趋势。然而&#xff0c;随之而来的是对网络连接质量和故障排查的更高要求。本文将探讨如何利用艾体宝Profitap IOTA技术&#xff0c;在火车上实现远程网络捕获和故障排查&#xff0c;助力铁路运输行业迈向智能化未…

✌粤嵌—2024/4/16—x的平方根

代码实现&#xff1a; int mySqrt(int x){if (x 0 || x 1) {return x;}long int i;for (i 1; i < x / 2; i) {if (i * i < x && (i 1) * (i 1) > x) {break;}}return i; }

关于小米消金-我以为的小米消金和实际的小米消金

我原以为的小米消金&#xff0c;是一个涵盖多种金融服务的平台&#xff0c;与小米品牌紧密相连&#xff0c;提供便捷的消费金融服务。然而&#xff0c;实际的小米消金&#xff0c;其业务范围、服务细节以及运营模式都与我之前的想象有所不同。它更注重用户体验&#xff0c;提供…

KVM虚拟机

文章目录 QEMU-KVM介绍虚拟网卡流程网卡透访流程 QEMU-KVM介绍 QEMU ● QEMU是一个主机上的VMM (Virtual machine monitor), 通过动态二进制模拟CPU&#xff0c;并提供一系列的硬件模型&#xff0c;使Guest OS能够与Host硬件交互。 ● QEMU的代码中有完整的虚拟机实现&#xf…

当路由模式为hash怎么对接京东物流回调链接

为什么我要写这篇文章呢&#xff1f;是因为最近在做这个需求&#xff0c;京东物流是需要自己手动点击授权后把返回的code拿去授权&#xff0c;刚开始以为一切都很顺利的&#xff0c;然而等我看到路由为hash时候&#xff0c;浏览器会忽略#后面的东西&#xff0c;所以是无法重新跳…

华三交换机知道ip怎么查找主机ip在接入交换机哪个端口下

环境&#xff1a; 华三S5120V3-52S-SI H3C Comware Software, Version 7.1.070, Release 6329 问题描述&#xff1a; 华三交换机知道ip怎么查找主机ip在接入交换机哪个端口下 已知主机ip192.168.1.111 解决方案&#xff1a; 在H3C&#xff08;新华三&#xff09;交换机上…

宝宝洗衣机买什么样的好?力荐四大表现突出婴儿洗衣机总汇

对于那些追求品质生活、分类洗涤的用户而言&#xff0c;专用的婴儿洗衣机可以满足我们对不同类型的宝宝衣物分开洗涤的需求&#xff0c;如果您家中有宝宝&#xff0c;或者您对个人卫生和健康有较高要求&#xff0c;这样的婴儿洗衣机可以提供高温洗涤程序&#xff0c;有效杀灭细…

单细胞核转录组——植物:叶叶我呀裂开啦~

单细胞转录组测序技术能够在单细胞分辨率下研究样本的转录组信息&#xff0c;可以完美解决细胞异质问题&#xff0c;能全面真实揭示细胞多样性和复杂性&#xff0c;能够更加深入地研究细胞类型、细胞功能、细胞亚群及其异质性、细胞谱系等&#xff0c;还常用于识别新的细胞类型…

【ARM 裸机】I.MX 启动方式之启动设备的选择

启动方式从两个方面来看&#xff0c;一是启动设备的选择&#xff0c;二是启动头文件的选择&#xff0c;本节是关于启动设备的选择&#xff1b; 1、硬件启动设备 回想一下上一节&#xff1a;【ARM 裸机】汇编 led 驱动之烧写 bin 文件&#xff0c;我们提到&#xff08;将 SD卡…