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;
    }
}
相关推荐
码熔burning9 分钟前
JVM 对象创建的核心流程!
java·jvm
努力努力再努力wz13 分钟前
【C++进阶系列】:万字详解红黑树(附模拟实现的源码)
java·linux·运维·c语言·开发语言·c++
毕设源码纪师姐13 分钟前
计算机毕设 java 高校机房综合管控系统 基于 SSM+Vue 的高校机房管理平台 Java+MySQL 的设备与预约全流程系统
java·mysql·课程设计
宁檬精20 分钟前
算法练习——55.跳跃游戏
数据结构·算法·游戏
王璐WL20 分钟前
【C语言入门级教学】内存函数
c语言·开发语言·算法
啃啃大瓜21 分钟前
python常量变量运算符
开发语言·python·算法
渣哥27 分钟前
HashMap 扩容为啥总是 2 的倍数?一场来自底层的“强迫症”探险
java
熊文豪29 分钟前
【华为OD】找出通过车辆最多颜色
算法·华为od
Running_slave33 分钟前
位运算左移右移应该怎么玩?
前端·javascript·算法
塔中妖34 分钟前
【华为OD】环中最长子串2
算法·华为od