LeetCode:83. 删除排序链表中的重复元素

简介

题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/description/

解决方式:链表 + 双指针

这是作者学习众多大神的思路进行解题的步骤,很推荐大家解题的时候去看看题解里面大佬们的思路、想法!

推荐查看画手大鹏大佬所作题解。

双指针

解题思路:这题也是用的双指针,不过不一样的是该题的双指针是当前节点和节点的指针域。这么做有一个好处,就是移动到下一个节点时,可以只移动当前节点就好了,不用移动两次,下一个节点的指针域本身就是下一个位置正确的指针。

java 复制代码
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        ListNode pre = head;
        // pre 本身是一个指针,pre.next 相当于另外一个指针
        while(pre != null && pre.next != null){ // 开始与结束边界
            if(pre.val == pre.next.val){
                // 节点值相等,移除后一个相等的节点
                // 移除后节点不移动,立足当前节点,看看是否后续新节点是否与当前节点仍然相等。是的话,继续移除。
                pre.next = pre.next.next;
            }else{
                // 直到当前节点值与下一个节点的节点值不等,才移动到下一个节点
                pre = pre.next;
            }
        }
        // 返回结果
        return head;
    }
}
相关推荐
穿条秋裤到处跑几秒前
每日一道leetcode(2026.04.10):三个相等元素之间的最小距离 I
算法·leetcode
nlpming11 分钟前
OpenClaw 代码解析
算法
学习永无止境@14 分钟前
MATLAB中矩阵转置
算法·matlab·fpga开发·矩阵
七颗糖很甜15 分钟前
雨滴谱数据深度解析——从原始变量到科学产品的Python实现【下篇】
python·算法·pandas
nlpming15 分钟前
OpenClaw system prompt定义
算法
nlpming15 分钟前
OpenClaw安装配置及简介
算法
爱码小白16 分钟前
MySQL 常用数据类型的系统总结
数据库·python·算法
玛丽莲茼蒿23 分钟前
Leetcode hot100 【中等】括号生成
算法·leetcode·职场和发展
小欣加油25 分钟前
leetcode 128 最长连续序列
c++·算法·leetcode·职场和发展
汀、人工智能38 分钟前
[特殊字符] 第94课:删除无效的括号
数据结构·算法·数据库架构·图论·bfs·删除无效的括号