python-leetcode-删除排序链表中的重复元素 II

82. 删除排序链表中的重复元素 II - 力扣(LeetCode)

python 复制代码
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
        # 创建一个哑节点,简化对头节点的处理
        dummy = ListNode(0)
        dummy.next = head
        prev = dummy  # 指向当前已处理的最后一个节点

        while head:
            # 检查当前节点是否是重复节点
            if head.next and head.val == head.next.val:
                # 跳过所有重复的节点
                while head.next and head.val == head.next.val:
                    head = head.next
                # 让 prev 跳过这些重复节点
                prev.next = head.next
            else:
                # 如果当前节点不重复,移动 prev 指针
                prev = prev.next
            # 移动 head 指针
            head = head.next

        return dummy.next
相关推荐
CS创新实验室25 分钟前
从顺序表到动态数组:数据结构的永恒基石与现代语言的优雅封装
数据结构·算法
Black蜡笔小新1 小时前
自动化AI算法训练服务器DLTM训推一体化平台助力农业生产管理实现安全智能化
人工智能·算法·自动化
8Qi82 小时前
LeetCode 23. 合并 K 个升序链表 —— 小顶堆(PriorityQueue)
数据结构·算法·leetcode·链表·
QiLinkOS2 小时前
《打破“用爱发电”:一种基于 Gitee 与时间戳的开源权益分配机制探索》
c语言·数据结构·c++·科技·算法·gitee·开源
松间听晚3 小时前
Agentic RL 环境和代码学习:以HGPO为例
算法
智者知已应修善业3 小时前
【51单片机用T0定时器方式1,实现0.5S的时间间隔实现第一次一个灯亮、第二次二个灯亮,直到全部灯亮,然后重复整个过程】2023-12-29
c++·经验分享·笔记·算法·51单片机
小许同学记录成长3 小时前
几何体编辑与布尔运算
算法·无人机
fanged3 小时前
简单看看3A算法2(TODO)
算法
智者知已应修善业3 小时前
【51单片机4位静态数码管显示1234】2023-11-14
c++·经验分享·笔记·算法·51单片机
♡すぎ♡3 小时前
镜面 IBL 预过滤贴图的计算
算法·计算机图形学·贴图·pbr