刻意练习:LeetCode实战 -- Task08.删除排序链表中的重复元素
背景
本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式,即选择了五个知识点(数组、链表、字符串、树、贪心算法),每个知识点选择了 三个简单、两个中等、一个困难 等级的题目,共计三十道题,利用三十天的时间完成这组刻意练习。
本次任务的知识点:链表
链表(Linked List) 是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里除了存放本身数据(data fields)之外还存放其后继节点的指针(Pointer)。
使用链表结构可以克服数组需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。
链表有很多种不同的类型:单向链表,双向链表以及循环链表。
题目
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
实现
C# 语言
- 执行结果:通过
- 执行用时:160 ms, 在所有 C# 提交中击败了 5.23% 的用户
- 内存消耗:25.9 MB, 在所有 C# 提交中击败了 5.72% 的用户
/*** Definition for singly-linked list.* public class ListNode {* public int val;* public ListNode next;* public ListNode(int x) { val = x; }* }*/public class Solution
{public ListNode DeleteDuplicates(ListNode head){if (head == null)return head;ListNode first = head.next;ListNode second = head;while (first != null){if (first.val == second.val)second.next = first.next;elsesecond = second.next;first = first.next;}return head;}
}
Python 语言
- 执行结果:通过
- 执行用时:52 ms, 在所有 Python3 提交中击败了 33.88% 的用户
- 内存消耗:13.5 MB, 在所有 Python3 提交中击败了 12.75% 的用户
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = Noneclass Solution:def deleteDuplicates(self, head: ListNode) -> ListNode:if head is None:return headfirst = head.nextsecond = headwhile first is not None:if first.val == second.val:second.next = first.nextelse:second = second.nextfirst = first.nextreturn head
来源
- https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/
往期活动
LSGO软件技术团队会定期开展提升编程技能的刻意练习活动,希望大家能够参与进来一起刻意练习,一起学习进步!
- Python基础刻意练习活动即将开启,你参加吗?
- Task01:变量、运算符与数据类型
- Task02:条件与循环
- Task03:列表与元组
- Task04:字符串与序列
- Task05:函数与Lambda表达式
- Task06:字典与集合
- Task07:文件与文件系统
- Task08:异常处理
- Task09:else 与 with 语句
- Task10:类与对象
- Task11:魔法方法
- Task12:模块
我是 终身学习者“老马”,一个长期践行“结伴式学习”理念的 中年大叔。
我崇尚分享,渴望成长,于2010年创立了“LSGO软件技术团队”,并加入了国内著名的开源组织“Datawhale”,也是“Dre@mtech”、“智能机器人研究中心”和“大数据与哲学社会科学实验室”的一员。
愿我们一起学习,一起进步,相互陪伴,共同成长。
后台回复「搜搜搜」,随机获取电子资源!
欢迎关注,请扫描二维码:
刻意练习:LeetCode实战 -- Task08.删除排序链表中的重复元素相关推荐
- LeetCode Algorithm 83. 删除排序链表中的重复元素
83. 删除排序链表中的重复元素 Ideas 这题挺简单的,直接一次遍历,如果当前遍历的元素val跟下一个元素的val相等,说明是重复元素,直接把当前item的next指向item->next- ...
- 每日一道leetcode题 82.删除排序链表中的重复元素
1.思路 找到链表中相同的元素,然后跳过这些元素,指向下一组元素: 存在问题, a.没有删除节点, b.还有其他思路) 2.代码 /*** Definition for singly-linked l ...
- leetcode No.83 删除排序链表中的重复元素
题目 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list 给定一个排序链表,删除所有重复的元素,使得每个元素只 ...
- LeetCode题 - 83. 删除排序链表中的重复元素 python实现
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3-&g ...
- leetcode算法题--删除排序链表中的重复元素 II
原题链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/ 1.map ListNode* deleteD ...
- list元素求和_LeetCode刷题实战82:删除排序链表中的重复元素 II
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...
- 【Leetcode -61.旋转链表 -82.删除排序链表中的重复元素Ⅱ】
Leetcode Leetcode -61.旋转链表 Leetcode -82.删除排序链表中的重复元素Ⅱ Leetcode -61.旋转链表 题目:给你一个链表的头节点 head ,旋转链表,将链表 ...
- 算法---删除排序链表中的重复元素 II
删除排序链表中的重复元素 II 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 . 输入:head = [1,2,3,3,4,4,5] ...
最新文章
- java操作es聚合操作并显示其他字段_java使用elasticsearch分组进行聚合查询过程解析...
- iOS获取webView的内容或修改网页上的内容
- 下一代低延时直播CDN:HLS、RTMP 与UDP +WebRTC
- use SAP web IDE to commit change to git
- 中小企业利用VRRP实现链路负载均衡
- Python数据结构与算法(一)--算法和时间复杂度
- 经典面试题(4):use strict 有什么意义和好处?
- hadoop--MapReduce框架原理
- 无盘服务器pnp,无盘系统PNP方法详细说明
- 如何有效提高你的沟通技巧
- php dht爬虫,利用DHT网络,爬取bt种子。
- 如何在TransCAD中制作美观的地图
- 机器学习笔记 - 什么是t-SNE?
- linux系统日志message 分析,Linux系统日志及日志分析
- php怎么更换图片背景的软件,如何更换照片背景
- 铁路订票系统的简单设计(转载)
- 极智Coding | 剖析 darknet load_weights 接口
- 简述计算机程序执行过程,计算机程序的执行过程
- 自媒体是如何赚钱的?分享如何做自媒体能赚到钱!
- 【task02】共享单车数据挖掘赛