【leetcode 06】203.移除链表元素

要点⭐

1.链表的遍历

2.链表指针的改变

3.要考虑头节点的移除

原链表删除元素

直接使用原来的链表来进行删除操作。

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        //使用原链表进行删除
        while(head!=null&&head.val==val){
            head=head.next;
        }
        ListNode cur=head;
        while(cur!=null&&cur.next!=null){
            if(cur.next.val==val){
                cur.next=cur.next.next;
            }else{
                cur=cur.next;
            }
        }
     return head;   
    }
}

使用虚拟头节点删除元素

设置一个虚拟头结点在进行删除操作。

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        //使用虚拟头节点
        ListNode dummy=new ListNode();
        dummy.next=head;
        ListNode cur=dummy;
        while(cur.next!=null){
            if(cur.next.val==val){
                cur.next=cur.next.next;
            }else{
                cur=cur.next;
            }
        }
     return dummy.next;   
    }
}
相关推荐
夏鹏今天学习了吗2 小时前
【LeetCode热题100(82/100)】单词拆分
算法·leetcode·职场和发展
曹轲恒2 小时前
Java中断
java·开发语言
xxxmine2 小时前
Java并发wait(timeout)
java
冰冰菜的扣jio2 小时前
Redis缓存问题——一致性问题、事务、持久化
java·spring·mybatis
施棠海2 小时前
监听与回调的三个demo
java·开发语言
mit6.8242 小时前
mysql exe
算法
2501_901147833 小时前
动态规划在整除子集问题中的应用与高性能实现分析
算法·职场和发展·动态规划
中草药z3 小时前
【嵌入模型】概念、应用与两大 AI 开源社区(Hugging Face / 魔塔)
人工智能·算法·机器学习·数据集·向量·嵌入模型
毕设源码-钟学长3 小时前
【开题答辩全过程】以 家政服务平台为例,包含答辩的问题和答案
java
踩坑记录3 小时前
leetcode hot100 189.轮转数组 medium
leetcode