当前位置: 首页 > article >正文

java练习(27)

ps:练习来自力扣

删除排序链表中的重复元素

给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。

代码来自官方题解

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        // 首先检查链表是否为空,如果为空,直接返回 head(也就是 null)
        // 因为空链表不存在重复元素,无需进行删除操作
        if (head == null) {
            return head;
        }

        // 定义一个指针 cur,初始时指向链表的头节点 head
        // 后续我们会通过移动 cur 指针来遍历链表
        ListNode cur = head;

        // 使用 while 循环来遍历链表,只要 cur 的下一个节点不为空,就继续循环
        while (cur.next != null) {
            // 比较当前节点 cur 的值和它下一个节点 cur.next 的值
            if (cur.val == cur.next.val) {
                // 如果两个节点的值相等,说明这两个节点是重复的
                // 此时我们将 cur 的 next 指针指向 cur.next 的下一个节点
                // 也就是跳过 cur.next 这个重复节点,相当于删除了它
                cur.next = cur.next.next;
            } else {
                // 如果两个节点的值不相等,说明当前节点和下一个节点不是重复节点
                // 此时将 cur 指针移动到下一个节点,继续往后遍历链表
                cur = cur.next;
            }
        }

        // 当遍历完整个链表后,所有重复的节点都已经被删除
        // 最后返回链表的头节点 head,此时链表中每个元素只出现一次
        return head;
    }
}


http://www.kler.cn/a/550312.html

相关文章:

  • 网络通信基础:端口、协议和七层模型详解,网络安全零基础入门到精通实战教程!
  • centos7安装vscode
  • 云原生 | Kubernetes 原生 Dashboard 已升级至 7.10.x 界面更简洁、功能更强大
  • [护网杯 2018]easy_tornado 1
  • 俄罗斯方块游戏完整代码示例
  • sysfs统一设备模型
  • MATLAB中regexpi函数用法
  • 使用OBS和nginx实现直播流
  • 深入解析 iOS 视频录制(一):录制管理核心MWRecordingController 类的设计与实现
  • Java基于 SpringBoot+Vue的微信小程序跑腿平台V2.0(附源码,文档)
  • Fisco-Bcos单群组区块链部署
  • 浏览器跨标签页通信
  • 【火星】火星 数字地面模型(DEM)数字正射影像(DOM)下载
  • POI 和 EasyExcel
  • Hadoop基本介绍
  • 【信息学奥赛一本通 C++题解】1285:最大上升子序列和
  • 数据结构(查找)
  • 浅析 vue里的全局指令文件 directives
  • 第1章大型互联网公司的基础架构——1.3 HTTP-DNS
  • 大模型知识蒸馏:解析原理、谈DeepSeek及服务器适配思路