背景

本篇图文是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.删除排序链表中的重复元素相关推荐

  1. LeetCode Algorithm 83. 删除排序链表中的重复元素

    83. 删除排序链表中的重复元素 Ideas 这题挺简单的,直接一次遍历,如果当前遍历的元素val跟下一个元素的val相等,说明是重复元素,直接把当前item的next指向item->next- ...

  2. 每日一道leetcode题 82.删除排序链表中的重复元素

    1.思路 找到链表中相同的元素,然后跳过这些元素,指向下一组元素: 存在问题, a.没有删除节点, b.还有其他思路) 2.代码 /*** Definition for singly-linked l ...

  3. leetcode No.83 删除排序链表中的重复元素

    题目 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list 给定一个排序链表,删除所有重复的元素,使得每个元素只 ...

  4. LeetCode题 - 83. 删除排序链表中的重复元素 python实现

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3-&g ...

  5. leetcode算法题--删除排序链表中的重复元素 II

    原题链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/ 1.map ListNode* deleteD ...

  6. list元素求和_LeetCode刷题实战82:删除排序链表中的重复元素 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  7. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

  8. 【Leetcode -61.旋转链表 -82.删除排序链表中的重复元素Ⅱ】

    Leetcode Leetcode -61.旋转链表 Leetcode -82.删除排序链表中的重复元素Ⅱ Leetcode -61.旋转链表 题目:给你一个链表的头节点 head ,旋转链表,将链表 ...

  9. 算法---删除排序链表中的重复元素 II

    删除排序链表中的重复元素 II 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 . 输入:head = [1,2,3,3,4,4,5] ...

最新文章

  1. java操作es聚合操作并显示其他字段_java使用elasticsearch分组进行聚合查询过程解析...
  2. iOS获取webView的内容或修改网页上的内容
  3. 下一代低延时直播CDN:HLS、RTMP 与UDP +WebRTC
  4. use SAP web IDE to commit change to git
  5. 中小企业利用VRRP实现链路负载均衡
  6. Python数据结构与算法(一)--算法和时间复杂度
  7. 经典面试题(4):use strict 有什么意义和好处?
  8. hadoop--MapReduce框架原理
  9. 无盘服务器pnp,无盘系统PNP方法详细说明
  10. 如何有效提高你的沟通技巧
  11. php dht爬虫,利用DHT网络,爬取bt种子。
  12. 如何在TransCAD中制作美观的地图
  13. 机器学习笔记 - 什么是t-SNE?
  14. linux系统日志message 分析,Linux系统日志及日志分析
  15. php怎么更换图片背景的软件,如何更换照片背景
  16. 铁路订票系统的简单设计(转载)
  17. 极智Coding | 剖析 darknet load_weights 接口
  18. 简述计算机程序执行过程,计算机程序的执行过程
  19. 自媒体是如何赚钱的?分享如何做自媒体能赚到钱!
  20. 【task02】共享单车数据挖掘赛

热门文章

  1. 小程序的ui应该怎么设计?
  2. iOS FMDB之FMDatabaseQueue(事物与非事物)
  3. Android Gradle Plugin 源码解析(上)
  4. 【网络流24题】最小路径覆盖问题
  5. python的zip函数
  6. iOS跳转到各种系统设置界面
  7. 原创jQuery移动设备弹出框插件——msgalert.js
  8. 分享一个python cookbook的在线教程地址
  9. 客户端动态调用WCF服务中的方法
  10. TinyFrame升级之八:实现简易插件化开发