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;
    }
}
相关推荐
yuanmenghao2 小时前
自动驾驶中间件iceoryx - 内存与 Chunk 管理(一)
c++·vscode·算法·链表·中间件·自动驾驶·柔性数组
艾莉丝努力练剑2 小时前
【QT】初识QT:背景介绍
java·运维·数据库·人工智能·qt·安全·gui
橘颂TA2 小时前
【剑斩OFFER】算法的暴力美学——面试题 01.02 :判定是否互为字符串重排
c++·算法·leetcode·职场和发展·结构与算法
糯诺诺米团2 小时前
C++多线程打包成so给JAVA后端(Ubuntu)<2>
java·开发语言·c++
一线大码2 小时前
后端分层架构规范和标准包结构
java·后端
南屿欣风2 小时前
Maven 聚合工程打包报错:Unable to find main class 快速解决
java·maven
洛_尘2 小时前
Java EE进阶7:Spring Boot 日志
java·spring boot·java-ee
Tisfy2 小时前
LeetCode 1390.四因数:因数分解+缓存
算法·leetcode·缓存
耘田2 小时前
 macOS Launch Agent 定时任务实践指南
java·开发语言·macos
_loehuang_2 小时前
Docker Compose 部署 Maven 私有库 nexus3
java·docker·maven·nexus·maven私有库