python删除链表中重复的节点_剑指offer:删除链表中重复的节点
题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
# Definition for singly-linked list.
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def deleteDuplication(self, head):
"""
给定一个有序的链表,删除所有重复的节点
"""
# 我们先设置一个辅助节点
# begin用来定位在返回链表的头节点的前一个节点(辅助节点)上
# pre_node用来定位返回链表的尾节点
begin = pre_node = ListNode(0)
while head:
c = 0 # 当前值出现的次数,初始化为0可以使后续代码更简洁
val = head.val # 当前值
# 记录当前节点,因为无论如何,head都会往前移动一次,当下面这个while退出之后,
# cur != head
cur = head
# 当前值连续出现的次数
while head and head.val == val:
c += 1
head = head.next
# 如果当前值只连续出现过1次,说明不是重复节点,需要将当前节点添加到链表的末尾
# 由于pre_node是定位尾节点的,所以每次添加一个尾节点的时候,需要将原尾节点(pre_node)
# 和新的尾节点连接起来,然后将pre_node重新定位到链表的尾节点
if c == 1:
pre_node.next = cur
pre_node = pre_node.next
# 当遍历完整个链表之后,注意要将尾节点与Null连接起来
pre_node.next = None
# begin在头节点的前一个节点(辅助节点)上,因此返回begin.next
return begin.next
python删除链表中重复的节点_剑指offer:删除链表中重复的节点相关推荐
- 找第一个只出现一次的字符_剑指offer 字符流中第一个只出现一次的字符
题目描述: 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是'g'.当从该字符流中读出前六个字" ...
- 在数组中查找指定元素_剑指 offer 第一题: 二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- 力扣—— 19. 删除链表的倒数第 N 个结点(java)、剑指 Offer 22. 链表中倒数第k个节点(java)
19. 删除链表的倒数第 N 个结点(java) 一.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3 ...
- 【每日一题】剑指 Offer 22. 链表中倒数第k个节点
剑指 Offer 22. 链表中倒数第k个节点
- 【LeetCode】剑指 Offer 22. 链表中倒数第k个节点
[LeetCode]剑指 Offer 22. 链表中倒数第k个节点 文章目录 [LeetCode]剑指 Offer 22. 链表中倒数第k个节点 一.遍历 二.双指针 总结 一.遍历 先遍历统计链表长 ...
- java中数组的下标比较_【Java】 剑指offer(53-3) 数组中数值和下标相等的元素
本文参考自<剑指offer>一书,代码采用Java语言. 题目 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数找出数组中任意一个数值等于其下标的元素.例如,在数 ...
- leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列
剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...
- 【LeetCode】剑指 Offer 62. 圆圈中最后剩下的数字
[LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 文章目录 [LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 一.动态规划 总结 一.动态规划 构建一个长度为 n ...
- 字符串全排列算法_C#版_剑指OFFER
字符串全排列算法_C#版_剑指OFFER 题目描述 题目描述 输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组. 例如输入字符串ABC,则输出由字符A, ...
最新文章
- 快速上手MyBatisPlus~(基友搭配,效率翻倍)
- 【技术综述】万字长文详解Faster RCNN源代码
- Eclipse Add generated serial version ID报错解决方案
- playframe 项目搭建
- CloudStack 配置高级网络简明手册
- input标签中使输入文本向右偏移像素解决方案(亲测有效)
- DeepMind的脑补AI再获新技能:看文字知场景、复杂环境、连续视频……
- HTML:常用特殊字符编码表(自用)
- Map集合的遍历方式(3种)
- 【C++】《C++ Primer Plus》--复习题、编程练习题答案
- 微信Emoji工具-EmojiUtil
- 人工智能杂记 人工智能简史
- AD13如何导出坐标文件
- 三维空间中鼠标点击选择线段的方法
- php强类型作用,强类型php性能很彪悍
- 注册企业腾讯邮箱需要对GoDaddy设置域名解析
- AMESim锂离子电池包电化学机理模型
- Portainer添加远程Docker(Docker API)
- 程序员必备神器(GifCam)
- 【Python基础】python中的re模块
热门文章
- PHP中普通方法如何调用静态属性,php中的静态属性和静态方法如何调用
- 高并发 python socket send 异步_对于Python中socket.listen()与多线程结合的困惑?
- 高等专科学校计算机,理工类计算机专业较好的高等专科学校
- java的classpath是什么_JAVA初学者classpath设置情况是什么?
- mysql的dml全,MySQL数据管理----DML语言(全记住)(示例代码)
- php 提交表单跳转页面,form表单页面跳转方式提交练习
- 通Python实现操作 excel表格 工作效率提升百倍
- Python基础教程:xrange和range的使用区别
- python 错误、调试、单元测试、文档测试
- Python加lxml实现图片解析下载功能