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

复制代码
82. 删除排序链表中的重复元素 II
链表和树的问题,一般都可以右递归和迭代俩种写法
本题链表定义
# 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]:
    #含义删除以head为头的重复节点注意是有序链表
    #终止条件:head==None//head.next==None 均return head
    #递归调用.
---
#先使用暴力破解
#1.找到相同元素的节点
#2.跳到相同元素的节点
#3.按照链表遍历暴力破解
class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        if not head or not head.next:
            return head
        #构造虚拟节点
        dummy = ListNode(-1)
        dummy.next=head
        #初始化
        pre = dummy
        cur = head
        while cur and cur.next:
            if cur.val==cur.next.val:
                while cur.next and cur.next.val==cur.val:
                    cur.next=cur.next.next
                pre.next = cur.next
            else:
                pre = cur
            cur = cur.next
        return dummy.next
复制代码

 

 
posted @   是冰美式诶  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示