【LeetCode刷题】203 移除链表元素 java

2023-11-12

题目

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

示例

 方法一: 先对头节点做处理,使其不为val

class Solution {
    public ListNode removeElements(ListNode head, int val) {
        //删除值相同的头结点后,可能新的头结点也值相等,用循环解决
        while(head!=null&&head.val==val){
            head=head.next;
        }
        if(head==null)
            return head;
        ListNode prev=head;
        //确保当前结点后还有结点
        while(prev.next!=null){
            if(prev.next.val==val){
                prev.next=prev.next.next;
            }else{
                prev=prev.next;
            }
        }
        return head;
    }
}

方法二:添加一个虚拟头节点,创建虚拟头节点的意义在于可以使得头节点的处理与其余节点一样。

class Solution {
    public ListNode removeElements(ListNode head, int val) {
        //创建一个虚拟头结点
        ListNode dummyNode=new ListNode(val-1);
        dummyNode.next=head;
        ListNode prev=dummyNode;
        //确保当前结点后还有结点
        while(prev.next!=null){
            if(prev.next.val==val){
                prev.next=prev.next.next;
            }else{
                prev=prev.next;
            }
        }
        return dummyNode.next;
    }
}

方法三:递归

class Solution {
    public ListNode removeElements(ListNode head, int val) {
       if(head==null)
           return null;
        head.next=removeElements(head.next,val);
        if(head.val==val){
            return head.next;
        }else{
            return head;
        }
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【LeetCode刷题】203 移除链表元素 java 的相关文章

  • 具有更高可见性的重写方法是良好的实践吗?

    回答这个问题 如何使用 GUI 使用 PaintComponent 初始化 GUI 然后添加基于鼠标的 GUI https stackoverflow com questions 21336141 how to gui using pain
  • 清理码头 - 删除“不必要”的东西

    我习惯用Jetty http jetty codehaus org jetty 作为我的网络容器 我对我做了什么安装步骤得到原始的焦油球并且清理一些目录和文件从中 我在这里想提出的是 您通常从 Jetty 中删除什么以在生产 登台环境中使用
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 禁用 Eclipse Java 调试器的热代码替换 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Eclipse 中禁用热代码替换 https stackoverflow com questions 2594408 how do i disable hot code replace in
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • Java套接字:在连接被拒绝异常时重试的最佳方法?

    现在我正在这样做 while true try SocketAddress sockaddr new InetSocketAddress ivDestIP ivDestPort downloadSock new Socket downloa
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • 主线程如何在该线程之前运行?

    我有以下代码 public class Derived implements Runnable private int num public synchronized void setA int num try Thread sleep 1
  • 在java中实现你自己的阻塞队列

    我知道这个问题之前已经被问过并回答过很多次了 但我只是无法根据互联网上找到的示例找出窍门 例如this http tutorials jenkov com java concurrency blocking queues html or t
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • 列表应该如何转换为具体的实现?

    假设我正在使用一个我不知道源代码的库 它有一个返回列表的方法 如下所示 public List
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 如何在 Eclipse Java 动态 Web 项目中使用 .properties 文件?

    我正在 Eclipse 中开发动态 Web 项目 我创建了一个 properties 文件来存储数据库详细信息 用户名 密码等 我通过右键单击项目和 New gt File 添加它 我使用了Java util包Properties类 但它不
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett

随机推荐

  • 二分查找——给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

    使用时间复杂度为 O log n 的算法 解题思路 1 在右区间时将left mid 1 而左区间时确实right mid 而不是right mid 1 因为我们不是在找某个值得位置 而是找在哪两个数之间 所以用right mid 最后ri
  • Unity3D 对于在VR中普通摄像头和VR摄像头同时存在——分屏

    这两天在研究关于VR的分屏 由于甲方要求需要在VR运行时 有多个一般的摄像头像监控一样定点存在场景中 而且能同时在屏幕上看到 我查了很多资料 并没有查到相关特别好的资料 只能找到如下的解决方案 解决方案 1 首先 VR摄像头和一般摄像头并不
  • 神奇字符串

    一个神奇字符串S仅包含 1 和 2 并遵守以下规则 字符串S是神奇的 因为连接字符 1 和 2 的连续出现次数会产生字符串S本身 字符串S的前几个元素如下 S 1221121221221121122 如果我们将S中的连续 1 和 2 分组
  • maven报错:[ERROR] 不再支持源选项 7。请使用 8 或更高版本。

    解决方案 pom xml文件中增加maven编译的java version jdk版本设置 以及maven compiler source 资源编译jdk版本设置和maven compiler target 资源构建jdk版本设置 JDK
  • 如何转行Python,以工作为导向可能会学的更快

    我是一个曾经做摄影行业的学生 后来转行做计算机 选择了Python 现在已经做了五年Python 月薪38k 因为我也是转行来学习Python的 所以有很多宝贵的经验给大家提供 因为转行并不是一个容易的事情 但是耐不住Python现在的工资
  • Android中的webview监听每次URL变化

    通过这个可以监听Android中webview访问的URL变化 webView setWebViewClient new WebViewClient Override public void onLoadResource WebView v
  • SpringBoot 的 MyBatis 多数据源配置

    实验环境 JDK 1 8 SpringBoot 2 4 1 Maven 3 6 3 MySQL 5 7 因为我本地只有 MySQL 数据库 为了方便演示 我会在启动一个本地 MySQL 在 MySQL 创建两个数据库 每个库中均有一个表 以
  • 关于SQL Server 输入SQL语句不能自动提示的处理方案

    打开 配置工具 SQL Server 配置管理器 看到安装sql server时输入的名称MYSQLSERVER 服务已停止 需启动服务 并将启动模式设置为自动
  • qt中选择文件夹中的中文路径的问题

    参考博客 https blog csdn net m0 37906001 article details 76672634 转换为char 使用的时候 QString fileName1 fileName1 toStdWString c s
  • 自制黑科技------桌面整理工具

    桌面文件太多 找不到文件 通过使用程序 科学的区域划分和文件归类 帮你的桌面变得更整齐 提高你的使用效率 附上桌面图片一张 点击打开链接
  • BottomNavigationView与Navigation使用

    目录 1 as自动生 2 xml代码 如果要修改底部的图标和文字需要去bottom nav menu修改 如果你要修改默认点击颜色需要去主题颜色修改 如果你要修改底部背景颜色可以在BottomNavigationView 的背景颜色修改 如
  • QFile的文件清空操作

    QFile file etc wpa supplicant conf file open QIODevice ReadOnly QTextStream io file file close file open QIODevice Trunc
  • ARM第五章平时作业

    第 5 章 S3C2440 嵌入式系统 共 63 分 一 简述启动代码存储在 NAND Flash 存储器上时 S3C2440 的启动过程 6 分 为了支持 NAND Flash 的 boot loader S3C2440A 配备了一个内部
  • java环境变量配置详细教程

    1 什么是环境变量 环境变量 environment variables 一般是指在操作系统中用来指定操作系统运行环境的一些参数 如 临时文件夹位置和系统文件夹位置等 环境变量是在操作系统中一个具有特定名字的对象 它包含了一个或者多个应用程
  • Java 访问权限 内部类总结

    在Java中 可以将一个类定义在另一个类里面或者一个方法里边 这样的类称为内部类 广泛意义上的内部类一般包括四种 成员内部类 局部内部类 匿名内部类 静态内部类 1 成员内部类 1 该类像是外部类的一个成员 可以无条件的访问外部类的所有成员
  • Java桥接模式

    基本介绍 1 桥接模式 Bridge模式 是指 将实现与抽象放在两个不同的类层次中 使两个层次可以独立改变 2 是一种结构型设计模式 3 Bridge模式基于类的最小设计原则 通过使用封装 聚合及继承等行为让不同的类承担不同的职责 它主要特
  • vue2 维护状态key的作⽤和原理

    1 key定义 为了给 Vue 个提示 以便它能跟踪每个节点的身份 从 重 和重新排序现有元素 你需要为每项提供 个唯 key 2 写法 li item name li 3 作 key 值使 数组的索引index 或者不加 在数组元素顺序打
  • 2023最新版本Activiti7系列-源码篇-初始化过程

    源码分析 1 设计模式 1 1 命令模式 https dpb bobokaoya sm blog csdn net article details 89115420 1 2 责任链模式 https dpb bobokaoya sm blog
  • xss攻击的了解

    常见的xss攻击方法 1 绕过XSS Filter 利用 lt gt 标签注入Html JavaScript代码 2 利用HTML标签的属性值进行xss攻击 例如 img src 当然并不是所有的Web浏览器都支持Javascript伪协议
  • 【LeetCode刷题】203 移除链表元素 java

    题目 给你一个链表的头节点 head 和一个整数 val 请你删除链表中所有满足 Node val val 的节点 并返回 新的头节点 示例 方法一 先对头节点做处理 使其不为val class Solution public ListNo