IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> JZ56 删除链表中重复的结点 python -> 正文阅读

[数据结构与算法]JZ56 删除链表中重复的结点 python

JZ56 删除链表中重复的结点

在这里插入图片描述
错误记录

  1. 1->1->2 头节点可能被删除
  2. 1->1->2->2
  3. 1->1->2->3->3->4->5->5
class Solution:
    def find_no_repeat(self, node):
        p = node
        if p and p.next:
            if p.val != p.next.val:
                return p
            p_no_re = p.next
            while p_no_re and p.val == p_no_re.val:
                p_no_re = p_no_re.next
            return p_no_re
        else:
            return p
    def deleteDuplication(self, pHead):
        # 找到第一个不重复的节点
        p = self.find_no_repeat(pHead)
        while p and p != self.find_no_repeat(p):
            p = self.find_no_repeat(p)
        pHead = p
        while p:
            p_no_re = self.find_no_repeat(p.next)
            while p_no_re and p.next != p_no_re:
                p.next = p_no_re
                p_no_re = self.find_no_repeat(p.next)
            p.next = p_no_re
            p = p_no_re
        return pHead

book method
当前节点是重复节点,则需将上一个节点的next与比当前节点值大的节点相连

class Solution:
    def deleteDuplication(self, pHead):
        # write code here
        newhead = ListNode('a')
        newhead.next = pHead
        pre, cur = None, newhead
        while cur:
            pre = cur
            cur = cur.next
            #判断指针的下一个值是否与当前值相等
            while cur and cur.next and cur.val == cur.next.val:
                t = cur.val
                #和当前值t相等的结点都被抛弃
                while cur and t == cur.val:
                    cur = cur.next
                pre.next = cur
        return newhead.next
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:43:11  更:2021-08-21 15:43:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:49:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码