java练习(27)

[复制链接]
发表于 2025-10-30 08:24:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
ps:练习来独立扣
删除排序链表中的重复元素
给定一个已排序的链表的头 head , 删除全部重复的元素,使每个元素只出现一次 。返回 已排序的链表 。

代码来自官方题解
  1. class Solution {
  2.     public ListNode deleteDuplicates(ListNode head) {
  3.         // 首先检查链表是否为空,如果为空,直接返回 head(也就是 null)
  4.         // 因为空链表不存在重复元素,无需进行删除操作
  5.         if (head == null) {
  6.             return head;
  7.         }
  8.         // 定义一个指针 cur,初始时指向链表的头节点 head
  9.         // 后续我们会通过移动 cur 指针来遍历链表
  10.         ListNode cur = head;
  11.         // 使用 while 循环来遍历链表,只要 cur 的下一个节点不为空,就继续循环
  12.         while (cur.next != null) {
  13.             // 比较当前节点 cur 的值和它下一个节点 cur.next 的值
  14.             if (cur.val == cur.next.val) {
  15.                 // 如果两个节点的值相等,说明这两个节点是重复的
  16.                 // 此时我们将 cur 的 next 指针指向 cur.next 的下一个节点
  17.                 // 也就是跳过 cur.next 这个重复节点,相当于删除了它
  18.                 cur.next = cur.next.next;
  19.             } else {
  20.                 // 如果两个节点的值不相等,说明当前节点和下一个节点不是重复节点
  21.                 // 此时将 cur 指针移动到下一个节点,继续往后遍历链表
  22.                 cur = cur.next;
  23.             }
  24.         }
  25.         // 当遍历完整个链表后,所有重复的节点都已经被删除
  26.         // 最后返回链表的头节点 head,此时链表中每个元素只出现一次
  27.         return head;
  28.     }
  29. }
复制代码

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表