LeetCode_Java_移除链表元素(题目+思路+代码)

203.移除链表元素

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

示例 1:

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

思路:

1.先判断head节点是否为空且是否head的属性值是否等于val-->若等于val值,则将head.next赋给head(删除head值)

2.创建一个节点,将判断后的头节点(即第一步骤后的head.next)赋给node

3.判断非头结点是否为空与下一个值是否为空

->如果node.next.val == val值,则将node.next.next的值赋给node.next

->如果node.next.val != val值,则将node.next的值赋给node

第三步骤已将非头结点与val相等的元素移除

最后返回head即可

java 复制代码
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        while(head!=null&&head.val==val){
            head = head.next;
        }
        ListNode node = head;
        while(node != null && node.next != null){
            if(node.next.val == val)
                node.next = node.next.next;
            else
                node = node.next;
        }
        return head;
    }
}
相关推荐
西安邮电大学19 小时前
2026华为OD机考真题附答案-准备生日礼物
java·后端
超梦dasgg19 小时前
Java 生产环境 RocketMQ 架构与部署指南
java·rocketmq·java-rocketmq
Trouvaille ~19 小时前
【Redis篇】Hash 哈希:字段级操作与对象存储的最佳实践
数据库·redis·后端·算法·缓存·哈希算法·键值对
cheems952719 小时前
JWT令牌是如何实现登录认证的
java
悠仁さん19 小时前
数据结构 树 二叉树 堆 (链式二叉树模拟实现篇)
数据结构·算法
happyprince19 小时前
10-Hugging Face Transformers 量化系统深度分析
java·前端·数据库
budingxiaomoli19 小时前
利用Hutool完成验证码案例
java
山人在山上19 小时前
docker离线安装
java·docker·eureka
z2005093019 小时前
今日算法(带回文问题的回溯)
算法·leetcode·回溯
洛水水19 小时前
【力扣100题】55.编辑距离
算法·leetcode·动态规划